Linux C 函数参考(文件操作)[2]

[入库:2005年8月19日] [更新:2007年3月25日]

本文简介:选择自 ming6 的 blog

参数
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浏览器)

go top