c语言的底层操作方法

1.函数名:  setvbuf
功 能: 把缓冲区与流相关
用 法:  int setvbuf(FILE *stream, char *buf, int type, unsigned size);
参数:stream :指向流的 指针 ;
buf : 期望缓冲区的地址;
type : 期望缓冲区的类型:
_IOFBF(满缓冲):当缓冲区为空时,从流读入数据。或者当缓冲区满时,向流写入数 据。
_IOLBF(行缓冲):每次从流中读入一行数据或向流中写入一行数据。
_IONBF(无缓冲):直接从流中读入数据或直接向流中写入数据,而没有缓冲区。
size : 缓冲区内字节的数量。
 
2.函数名: fcntl
功能:用来操作 文件描述符的一些特性。fcntl 不仅可以施加建议性锁,还可以施加强制锁。同时,fcntl还能对文件的某一记录进行上锁,也就是记录锁。
用法:int fcntl(int fd, int cmd); 
  int fcntl(int fd, int cmd, long arg); 
  int fcntl(int fd, int cmd, struct flock *lock);
参数:(1)fd 是被参数cmd操作(如下面的描述)的描述符.(2)cmd代表打算操作的指令:取值有 F_DUPFD用来查找大于或等于参数arg的最小且仍未使用的文件描述词,并且复制参数fd的文件描述词。。
F_GETFD取得close-on-exec 旗标。若此旗标的FD_CLOEXEC位为0,代表在调用exec()相关函数时文件将不会关闭。
F_SETFD 设置close-on-exec 旗标。该旗标以参数arg 的FD_CLOEXEC位决定。
F_GETFL 取得文件描述词状态旗标,此旗标为open()的参数flags。
F_SETFL 设置文件描述词状态旗标,参数arg为新旗标,但只允许O_APPEND、O_NONBLOCK和O_ASYNC位的改变,其他位的改变将不受影响。
F_GETLK 取得文件锁定的状态。
F_SETLK 设置文件锁定的状态。此时flcok 结构的l_type 值必须是F_RDLCK、F_WRLCK或F_UNLCK。如果无法建立锁定,则返回-1,错误代码为EACCES 或EAGAIN。
F_SETLKW F_SETLK 作用相同,但是无法建立锁定时,此调用会一直等到锁定动作成功为止。若在等待锁定的过程中被信号中断时,会立即返回-1,错误代码为EINTR。

(3)参数lock指针为flock 结构指针
 
3.函数名: tcgetattr
功能:tcgetattr函数用于获取与终端相关的参数。
用法:int tcgetattr(int fd, struct termios *termios_p);
参数:参数fd为终端的 文件描述符,返回的结果保存在 termios  结构体中,该结构体一般包括如下的成员:
tcflag_t c_iflag;
tcflag_t c_oflag;
tcflag_t c_cflag;
tcflag_t c_lflag;
cc_t c_cc[NCCS];
 

你可能感兴趣的:(c语言的底层操作方法)