当前位置: 首页 > news >正文

html5做手机网站建设淄博网站推广那家好

html5做手机网站建设,淄博网站推广那家好,设计类专业笔记本电脑推荐排行,射洪做网站文章目录 概述介绍函数原型与参数 拓展:fcntl改文件属性总结 概述 摘要: fcntl函数是Linux系统编程中一个重要的函数,用于对文件描述符进行各种控制操作。本文将详细介绍fcntl函数的原型、各个参数的用法,以及阻塞和非阻塞模式切换的方法&am…

文章目录

  • 概述
  • 介绍
    • 函数原型与参数
  • 拓展:fcntl改文件属性
  • 总结

概述

摘要: fcntl函数是Linux系统编程中一个重要的函数,用于对文件描述符进行各种控制操作。本文将详细介绍fcntl函数的原型、各个参数的用法,以及阻塞和非阻塞模式切换的方法,并提供相应的代码示例,帮助读者更好地理解和应用fcntl函数。

介绍

fcntl函数是Linux系统编程中的一个文件控制函数,用于对文件描述符进行各种操作,如文件锁定、文件描述符状态设置等。它的原型如下:

函数原型与参数

#include <fcntl.h>
int fcntl(int fd, int cmd, ...);

fcntl函数接受三个参数:文件描述符fd、控制命令cmd和可选的第三个参数arg。

参数用法

文件描述符fd:需要进行控制的文件描述符。

控制命令cmd:决定了具体的操作。常见的命令有:

F_GETFL:获取文件描述符的状态标志。
F_SETFL:设置文件描述符的状态标志。
F_GETFD:获取文件描述符的文件执行标志。
F_SETFD:设置文件描述符的文件执行标志。
F_SETLK:设置文件锁。
F_GETLK:获取文件锁状态。
可选的第三个参数arg:用于某些控制命令的附加参数,具体取决于cmd的值。

拓展:fcntl改文件属性

fcntl用来改变一个【已经打开】的文件的 访问控制属性
重点掌握两个参数的使用, F_GETFL,F_SETFL

int fcntl(int fd, int cmd, ...)

fd 文件描述符
cmd 命令,决定了后续参数个数

int flgs = fcntl(fd,  F_GETFL);flgs |= O_NONBLOCKfcntl(fd,  F_SETFL, flgs);获取文件状态: F_GETFL设置文件状态: F_SETFL

终端文件默认是阻塞读的,这里用fcntl将其更改为非阻塞读

1.#include <unistd.h>  
2.#include <fcntl.h>  
3.#include <errno.h>  
4.#include <stdio.h>  
5.#include <stdlib.h>  
6.#include <string.h>  
7.  
8.#define MSG_TRY "try again\n"  
9.  
10.int main(void)  
11.{  
12.    char buf[10];  
13.    int flags, n;  
14.  
15.    flags = fcntl(STDIN_FILENO, F_GETFL); //获取stdin属性信息  
16.    if(flags == -1){  
17.        perror("fcntl error");  
18.        exit(1);  
19.    }  
20.    flags |= O_NONBLOCK;  
21.    int ret = fcntl(STDIN_FILENO, F_SETFL, flags);  
22.    if(ret == -1){  
23.        perror("fcntl error");  
24.        exit(1);  
25.    }  
26.  
27.tryagain:  
28.    n = read(STDIN_FILENO, buf, 10);  
29.    if(n < 0){  
30.        if(errno != EAGAIN){          
31.            perror("read /dev/tty");  
32.            exit(1);  
33.        }  
34.        sleep(3);  
35.        write(STDOUT_FILENO, MSG_TRY, strlen(MSG_TRY));  
36.        goto tryagain;  
37.    }  
38.    write(STDOUT_FILENO, buf, n);  
39.  
40.    return 0;  
41.}  

编译运行,结果如下:
在这里插入图片描述

可以看到,是非阻塞读取。

总结

通过详细介绍fcntl函数的原型、参数用法以及阻塞和非阻塞模式切换的方法,我们希望读者能够更好地理解和应用fcntl函数

http://www.yayakq.cn/news/416115/

相关文章:

  • 巨野网站建设需要怎么办
  • 珠海仿站定制模板建站网站基础知识
  • 中国住房和城乡建设网站wordpress ftp
  • cn域名建设网站需要备案吗怎么做自己网站的API
  • 网站中的公司地址怎么做公司网站上首页代码模板
  • c可以做网站么精品课程网站建设论文
  • 你愿不愿意做我女朋友网站中山模板建站公司
  • 山东省城乡与住房建设厅网站首页怎么做网站站长
  • 中国建设网站培训通知建设银行网站会员怎么用
  • 好网站推荐沈阳做网站的设计公司
  • 浙江火电建设有限公司网站网上购物哪个平台能买到正品
  • 网站建设公司 南宁国内免费设计素材网站
  • 上海有多少个网站科技公司动漫做暧昧视频网站
  • 英文站 wordpresswordpress国内访问
  • 婚纱网站排行仓山区seo引擎优化软件
  • 赣榆网站制作创建网页
  • 网站定制开发前期要有一定的规划公司网站的搭建方案
  • 桂林网站建设找骏程wordpress优化加速缓存中国
  • 移动端手机网站模板下载卖域名出去客户犯法怎么办
  • 门户网站怎么创建网站做推广应该如何来做呢哪里推广
  • 网站技术可行性学院网站建设流程图
  • 网站开发的项目总结承德最新大新闻
  • 网站建设办什么手续百度网址大全下载到桌面
  • 最好加盟网站建设网站图片优化的概念
  • 烟台模板建站代理上海青浦网站建设公司
  • 上海网站设计价vps云主机可以做网站
  • 河北制作网站模板建站公司codewars网站
  • 合肥网站建设策划方案会员注册系统源码wordpress
  • 对重庆电子政务网站建设评价网站app开发公司
  • 云南网站优化建站池州集团网站建设