fcntl和ioctl_Liverpool fc

fcntl和ioctl_Liverpool fc一、fcntlfcntl函数用于执行各种描述符控制操作;/*返回值:成功取决于cmd,失败返回-1;*定义:*/#includeintfcntl(intsockfd,intcmd,/*intarg*/);/*说明:*第三个参数可有可没有,根据需要给出;*/函数有下面5种功能:复制一个现有的描述符(cmd=F_DUPFD);获得/

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

一、fcntl

fcntl 函数用于执行各种描述符控制操作;

/* 返回值:成功取决于cmd,失败返回-1; * 定义: */
#include <fcntl.h>
int fcntl(int sockfd, int cmd, /* int arg */);
/* 说明: * 第三个参数可有可没有,根据需要给出; */

Jetbrains全家桶1年46,售后保障稳定

函数有下面5种功能:

  • 复制一个现有的描述符(cmd=F_DUPFD);
  • 获得/设置文件描述符标记(cmd=F_GETFD或F_SETFD);
  • 获得/设置文件状态标记(cmd=F_GETFL或F_SETFL);
  • 获得/设置异步I/O所有权(cmd=F_GETOWN或F_SETOWN);
  • 获得/设置记录锁(cmd=F_GETLK , F_SETLK或F_SETLKW);

这里介绍如何将描述符设置为非阻塞的方法;

flags = fcntl(fd, F_GETFL, 0);
fcntl(fd, F_SETFL, flags | O_NONBLOCK);
/* 通过fcntl获取当前描述符fd的文件状态标记, * 然后将之与非阻塞标志O_NONBLOCK进行或操作再进行设置; */

其他功能详细介绍参考:fcntl函数详解

二、ioctl

ioctl函数一些功能与fcntl函数是重叠的,主要功能为影响由参数fd打开的文件。

/* 返回值:成功返回0,出错返回-1;*/
#include <unistd.h>
int ioctl(int fd, int request, /* void *arg */);
/* 说明: * fd为描述符,request为执行操作参数,由一系列定义的宏来决定,arg为一个指针, * 类型由request决定; */

ioctl与网络相关的请求可以划分为6类:

  • 套接口操作
  • 文件操作
  • 接口操作
  • ARP 高速缓存操作
  • 路由表操作
  • 流系统

对于每一种操作,都有几个不同的功能参数,这里不详细介绍,具体参考:ioctl用法详解;或UNIX网络编程卷1 :套接字联网API;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226889.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android SDK下载配置教程

    Android SDK下载配置教程https://blog.csdn.net/naipeng/article/details/72722682/ 下面详细介绍。第一步、安装JDKAndroid开发工具要求必须安装JDK(JavaDevelopmentKit),不能只安装JRE(Java RuntimeEdition),在安装Android开发工具之前需要先安装JavaJDK。尤其是Eclipse的开发过程必须要…

    2022年7月19日
    16
  • 什么是债券久期[通俗易懂]

    什么是债券久期[通俗易懂]在做债券的投资分析中经常出现的一个词汇——债券久期,之前更多地是专注于开发,并不明白数字背后的业务含义,今天特意梳理下并做个记录。百度百科的解释:久期也称持续期,是1938年由F.R.Macaula

    2022年8月3日
    3
  • Java开发手册之SQL语句

    Java开发手册之SQL语句Java开发手册之SQL语句

    2022年4月22日
    35
  • Java三大特征

    Java三大特征Java面向对象的三大特征:封装、继承、多态封装和继承几乎都是为多态而准备的一、     封装首先,属性能够描述事物的特征,方法能够描述事物的动作。封装就是把同一类事物的共性(包括属性和方法)归到同一类中,方便使用。封装:封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数

    2022年7月7日
    19
  • 浅析Promise用法[通俗易懂]

    浅析Promise用法[通俗易懂]浅析Promise用法要理解Promise要知道没有Promise的回调地狱如何插入一段漂亮的代码片Promise语法与then的用法所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise是一个对象,从它可以获取异步操作的消息。Promise提供统一的API,各种异步操作都可以用同样的方法进行处理。Promis…

    2022年6月19日
    24
  • 使用Matlab对数据归一化

    使用Matlab对数据归一化前言在使用机器学习做分类和回归分析时,往往需要对训练和测试数据首先做归一化处理。这里就对使用MATLAB对数据进行归一化方法做一个小总结。为什么进行归一化一般做机器学习应用的时候大部分时间是花费在特征处理上,其中很关键的一步就是对特征数据进行归一化。关于为什么进行归一化处理维基百科给出的解释是:1)归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度。具体介绍:https://w…

    2022年6月23日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号