dup,dup2,fcntl,ioctl,系统调用

本文详细介绍了Linux系统调用中的dup、dup2、fcntl和ioctl函数。dup和dup2用于复制文件描述符,fcntl则提供了更丰富的文件描述符管理和文件控制功能,如设置关闭-on-exec标志、获取或修改文件打开方式。ioctl用于特定设备的输入输出控制,如文件记录锁的管理。了解这些系统调用对于深入理解Linux内核交互至关重要。
摘要由CSDN通过智能技术生成
1.dup()函数和dup2函数


dup()和dup2()函 数包含在头文件<unistd.h>中 原型:int dup(int oldfd); int dup2(int oldfd,int newfd); dup用来复制参数oldfd所指的文件描述符,返回最小的尚未被使用的文件描述符,错误返回-1;返回的新文件描述符和参数oldfd指向同一个文件,共享所有的锁定,读写指针等各项权限或标志位;如果用lseek()对某个文件描述符操作,另一个文件描述符的读写位置也会改变. dup2可以用参数newfd,指定新文件的描述符的数值.如果你所指定的newfd已经被程序使用,系统就会将其关闭以释放该文件描述符,若oldfd与newfd相等, 则dup2返回newfd,不关闭它,dup2 调用成功,返回新的描述符,出错返回-1;


2.fcntl()函数


fcntl包含在头文件<unistd.h>和<fcntl.h>中 函数原型:int fcntl(int fd,int cmd); int fcntl(int fd,int cmd,long,arg); int fcntl(int fd,int cmd,struct flock   *lock); fcntl ()的功能依据cmd的值不同而不同,


F_DUPFD:如果cmd的值为F_DUPFD, 与dup的功能相同;
F_GETFD:此时,fcntl()函数用来获取文件描述符的close-on-exec 标志,调用成功返回标志值,若此标志值的最后一位是0,则该标
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值