/* 1、复制文件描述符 2、设置/获取文件的状态标识 #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd, ...); 参数: fd:文件描述符 cmd:表示对文件描述符进行如何操作 F_DUPFD:复制文件描述符,得到一个新的文件描述符(返回值) int ret = fcntl(fd, F_DUPFD); F_GETFL:获取指定的文件描述符的文件状态,可读、可写、还是可执行 获取的flag和通过open传递的flag是一个东西 F_SETFL:设置文件状态 必选项:O_RDONLY、O_WRONLY、O_RDWR 可选项:O_APPEND、O_NONBLOK 因此,如果要修改文件状态,需要先记录原装态,然后再按位或需要修改的状态 以保证必选项不丢失 */