同样的首先利用函数open以只读的方式打开一个文件并保存返回的文件描述符,利用fcntl函数的复制文件描述符模式,返回当前可用文件描述符的最小数值并打印出来,为了防止文件描述符为6的被使用,然后首先利用close函数关闭文件描述符为6的文件,然后再将目前的这个文件描述符修改为6,并通过输出来验证是否修改成功。
//利用函数fcntl修改文件描述符
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
int main(void)
{
int fd1,fd2,fd = open("createfile.c",O_RDONLY);
fd1 = fcntl(fd,F_DUPFD,0);//复制文件描述符,返回当前可用文件描述符的最小数值
printf("初始文件描述符为%d\n",fd1);
close(6); //关闭文件描述符为6的文件
fd2 = fcntl(fd,F_DUPFD,6);//修改文件描述符为6
printf("修改后的文件描述符为%d\n",fd2);
return 0;
}