linux fcntl

fcntl

 可以重新设置读,写,追加,非阻塞等标志(File Status Flag),而不必open文件;

int fcntl(int fd, int cmd);

int fcntl(int fd, int cmd, long arg);

int fcntl(int fd, int cmd, struct flock *lock);

头文件 include <unistd.h>  include <fcntl.h>;

cmd:以F_GETFL (获取)和 F_SETFL(设置)为例; 

int flags = fcntl(STDIN_FILENO, F_GETFL);

flags |= O_NONBLOCK;(非阻塞);

int val = fcntl(atoi(argv[1], F_GETFL));

val & O_ACCMODE(访问权限);

通过fcntl设置当前进程如何访问设备或文件都访问控制属性,如读,写,追加,非阻塞,加锁等,但并不设置文件或设备本身都属性,如文件的读写权限,串口波特率等。

你可能感兴趣的:(linux fcntl)