|
参数 |
operation有下列四种情况: lock_sh 建立共享锁定。多个进程可同时对同一个文件作共享锁定。 lock_ex 建立互斥锁定。一个文件同时只有一个互斥锁定。 lock_un 解除文件锁定状态。 lock_nb 无法建立锁定时,此操作可不被阻断,马上返回进程。通常与lock_sh或lock_ex 做or(|)组合。 单一文件无法同时建立共享锁定和互斥锁定,而当使用dup()或fork()时文件描述词不会继承此种锁定。
|
|
返回值 |
返回0表示成功,若有错误则返回-1,错误代码存于errno。
|
|
|
|
|
fsync(将缓冲区数据写回磁盘) |
|
相关函数 |
sync
|
|
表头文件 |
#include<unistd.h>
|
|
定义函数 |
int fsync(int fd);
|
|
函数说明 |
fsync()负责将参数fd所指的文件数据,由系统缓冲区写回磁盘,以确保数据同步。
|
|
返回值 |
成功则返回0,失败返回-1,errno为错误代码。
|
|
|
|
|
lseek(移动文件的读写位置) |
|
相关函数 |
dup,open,fseek
|
|
表头文件 |
#include<sys/types.h> #include<unistd.h>
|
|
定义函数 |
off_t lseek(int fildes,off_t offset ,int whence);
|
|
函数说明 |
每一个已打开的文件都有一个读写位置,当打开文件时通常其读写位置是指向文件开头,若是以附加的方式打开文件(如o_append),则读写位置会指向文件尾。当read()或write()时,读写位置会随之增加,lseek()便是用来控制该文件的读写位置。参数fildes 为已打开的文件描述词,参数offset 为根据参数whence来移动读写位置的位移数。
|
|
参数 |
whence为下列其中一种: seek_set 参数offset即为新的读写位置。 seek_cur 以目前的读写位置往后增加offset个位移量。 seek_end 将读写位置指向文件尾后再增加offset个位移量。 当whence 值为seek_cur 或seek_end时,参数offet允许负值的出现。 下列是教特别的使用方式: 1) 欲将读写位置移到文件开头时:lseek(int fildes,0,seek_set); 2) 欲将读写位置移到文件尾时:lseek(int fildes,0,seek_end); 3) 想要取得目前文件位置时:lseek(int fildes,0,seek_cur);
|
|
返回值 |
当调用成功时则返回目前的读写位置,也就是距离文件开头多少个字节。若有错误则返回-1,errno 会存放错误代码。
|
|
附加说明 |
linux系统不允许lseek()对tty装置作用,此项动作会令lseek()返回espipe。
|
|
范例 |
参考本函数说明
|
|
|
|
|
mkstemp(建立唯一的临时文件) |
|
相关函数 |
mktemp
|
|
表头文件 |
#include<stdlib.h>
|
|
定义函数 |
int mkstemp(char * template);
|
|
函数说明 |
mkstemp()用来建立唯一的临时文件。参数template 所指的文件名称字符串中最后六个字符必须是xxxxxx。mkstemp()会以可读写模式和0600 权限来打开该文件,如果该文件不存在则会建立该文件。打开该文件后其文件描述词会返回。文件顺利打开后返回可读写的文件描述词。若果文件打开失败则返回null,并把错误代码存在errno 中。
本文关键:Linux C 函数参考(文件操作)
本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)
|