linux编程问题fcntl函数

author author     2023-03-09     378

关键词:

flags=fcntl(fd, F_GETFL,DUMMY);
flags&=fcntl(fd, F_SETFL,flags);

这两句话什么意思 教材上从源程序截取下来的 怀疑错了 看不懂
哪位高手给我解释一下 万分感谢……
我想问的是这两句语言的具体意思 不是fcntl 函数的用法 谢谢

fcntl的返回值与命令有关。如果出错,所有命令都返回-1,如果成功则返回某个其他值。
下列三个命令有特定返回值:F_DUPFD,F_GETFD,F_GETFL以及F_GETOWN。第一个返回新的文件描述符,第二个返回相应标志,最后一个返回一个正的进程ID或负的进程组ID。

F_GETFL 取得fd的文件状态标志,如同下面的描述一样(arg被忽略)

F_SETFL 设置给arg描述符状态标志,可以更改的几个标志是: O_APPEND, O_NONBLOCK,O_SYNC和O_ASYNC

http://www.91linux.com/html/article/program/cpp/20090207/15707.html
参考技术A 虽然不懂linux编程,但是没看出来有问题,函数调用正确的啊
dummy=1;
a=0;
a=1+dummy;
a=a+(1+a); //a=2+3=5
参考技术B 把出错信息贴出来本回答被提问者采纳

unix环境高级编程里的fcntl函数使用示例

#include"stdio.h"#include"fcntl.h"#include"unistd.h"intmain(intargc,char*argv[])intval;if(argc!=2)printf("usage:a.out<desriptior#>\n");exit(-1);if((val=fcntl(atoi(argv[1]),F_GETFL,0))<0)printf("fcntlerrorforfd%d\n",atoi(argv[1]));swi... 查看详情

linux fcntl文件锁定超时

...:linuxfcntlfilelockwithtimeout【发布时间】:2019-11-2414:45:09【问题描述】:标准的linuxfcntl调用不提供超时选项。我正在考虑使用信号实现超时锁定。这里是阻塞锁的描述:F_SETLKW这个命令应该等同于F_SETLK,除了如果共享或排他锁被其... 查看详情

fcntl函数理解问题

#include<stdio.h>#include<fcntl.h>#include<unistd.h>intmain(intargc,char*argv[])if(argc<2)perror("参数数量过少");intfd=open(argv[1],O_RDONLY|O_TRUNC);char*msg="hello";printf("fd=%d\n",fd);fcntl(fd,F_SETFL,O_WRONLY|O_TRUNC);intnum=write(fd,... 查看详情

socket编程在windows和linux下的区别是啥?

参考技术A1.头文件windows下winsock.h或winsock2.hlinux下netinet/in.h(大部分都在这儿),unistd.h(close函数在这儿),sys/socket.h(在in.h里已经包含了,可以省了)2.初始化windows下需要用WSAStartup启动Ws2_32.lib,并且要用#pragmacomment(lib,"Ws2... 查看详情

linux系统编程(文件)———文件打开/创建写入读取(代码片段)

文件编程打开/创建文件写入文件读取文件文件光标位置打开/创建文件函数原型 //头文件 #include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>intopen(constchar*pathname,intflags);intopen(constchar*pathname,intflags,mode_tmo 查看详情

文件io——fcntl函数和ioctl函数(代码片段)

6.1fcntl函数6.1.1函数介绍1#include<unistd.h>2#include<fcntl.h>3intfcntl(intfd,intcmd);4intfcntl(intfd,intcmd,longarg);5intfcntl(intfd,intcmd,structflock*lock);函数说明:fcntl()用来操作文件描述词的一些特性。函数功能:可以改 查看详情

fcntl函数(代码片段)

通过fcntl函数设置文件的阻塞特性设置为阻塞:fcntl(fd,F_SETFL,0);设置为非阻塞:fcntl(fd,F_SETFL,O_NONBLOCK);如果是阻塞,管道中没有数据,read会一直等待,直到有数据才会继续运行,否则一直等待如果是非阻塞&#... 查看详情

linux网络编程头文件汇总

Linux网络编程所需头文件汇总如下:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<unistd.h>#include<errno.h>#include<fcntl.h>#include<sys/ioctl.h>#include<s 查看详情

linux内核模块编程问题

...的实验,以内核模块方式实现,现在就内核模块编程遇到的的一些问题,做以记录如下:1.内核函数访问用户态空间在内核模块中若想要打开或者写一个文件时,可以调用内核中的open/write函数,但是内核中... 查看详情

第七篇:使用fcntl函数获取,设置文件的状态标志

...,修改这个文件的状态标志呢?本文将告诉你如何用fcntl函数获取指定文件的状态标志。解决思路    1.对于获取文件状态标志,我们可以通过调用fcntl函数得到一个记录文件标志的整型变量,然后分别让它和各个状... 查看详情

linux系统编程|01-文件操作(代码片段)

...系统调用?由操作系统实现并提供给外部应用程序的编程接口(API),是应用程序同系统之间数据交互的桥梁。C标准函数和系统函数调用关系,如图:2.c库函数待写。二、文件IO(系统调用API)库... 查看详情

linux系统编程|01-文件操作(代码片段)

...系统调用?由操作系统实现并提供给外部应用程序的编程接口(API),是应用程序同系统之间数据交互的桥梁。C标准函数和系统函数调用关系,如图:2.c库函数待写。二、文件IO(系统调用API)库... 查看详情

fcntl和flock两个系统调用的区别

总的来说,flock函数只能锁定整个文件,无法锁定文件的某一区域。而fcntl可以利用structflock结构体,来实现文件里部分区域锁定的操作。附:fcntl(文件描述词操作) 相关函数open,flock表头文件#include<unistd.h>#include<fcnt... 查看详情

linux下三种文件锁——fcntl/lockf、flock

...写结论,总结总结历史,有空再补其他的。http://man7.org/linux/man-pages/man2/fcntl.2.htmlhttp://man7.org/linux/man-pages/man2/flock.2.htmlhttp://blog.csdn.net/jnu_simba/article/details/8806654 查看详情

Windows 上的 fcntl 替代品

...题】:fcntlsubstituteonWindows【发布时间】:2010-11-2804:28:05【问题描述】:我收到了一个使用标准库中的fcntl模块的Python项目(如果这很重要,它恰好是一个Django项目),该模块似乎仅在Linux上可用。当我尝试在我的Windows机器上运行... 查看详情

linux系统编程之错误处理机制

在讲解liunx错误处理机制之前我们先来看一段代码:1#include<sys/types.h>2#include<sys/stat.h>3#include<fcntl.h>4#include<stdio.h>5#include<stdlib.h>67intmain(void)8{9intfd;10fd=open("abc",O_WRON 查看详情

我可以让 fcntl 和 Perl 警报合作吗?

...getfcntlandPerlalarmstocooperate?【发布时间】:2010-09-2318:56:49【问题描述】:我使用的是linux,nfs,涉及多台机器。我正在尝试使用fcntl来实现文件锁定。我一直在使用flock,直到我发现它只能在同一台机器上的进程之间工作。现在当我... 查看详情

使用fcntl在python中锁定文件(代码片段)

我正在尝试定义函数以简化使用fcntl模块锁定文件。当我手动运行fcntl.lockf(lock_file,fcntl.LOCK_EX|fcntl.LOCK_NB)在两个单独的Python实例中,我得到了预期的异常BlockingIOError:[Errno11]Resourcetemporarilyunavailable但是当我在mylock.py中定义函数来自... 查看详情