//打开或者创建一个由agrv指定的文件//然后使用dup函数复制该文件的描述符//并且分别打印之前和复制之后的描述符 # include & lt; stdio.h> # include & lt; unistd.h> # include & lt; fcntl.h> # include & lt; sys/stat.h> # include & lt; sys/types.h> 命令行参数个数,int 主要(int char *, argv []) { int 才能,fd; 如果才能(argc !=, 2),,,//如果参数错误 {才能 ,,,printf("参数错误\ n”),, ,,,return 1; ,,} 如果才能((=fd 开放(* (argv + 1), O_WRONLY | O_CREAT、0644)),==, 1),,//打开argv1指定的文件 {才能 ,,,printf("打开文件% s失败\ n”, * (argv + 1));,,//打开函数错误 ,,,return 2; ,,} ,,printf("当前文件描述符是% d \ n”, fd),,,,,,,,//打印当前的文件描述符w 如果才能(,(fd =, dup (fd)),==, 1),,,,,,,,,,,,,,,,//获得新的文件描述符 {才能 ,,,printf (" dup文件错误\ n”),,,,,,,//dup函数操作错误 ,,,return 3; ,,} ,,printf (" dup文件成功! \ n”),,,,,,,,,,,,//dup操作成功 ,,printf("新的文件描述符是% d \ n”, fd);,,//打印新的文件描述符 关闭(fd);才能,,,,,,,,,,,,,//关闭文件 return 才能;0; 以前,}>
(Linux文件属性]使用dup函数复制文件描述符