原创 GNU/Linux输入和输出

2009-5-27 20:56 1589 4 4 分类: 软件与OS
基于文件描述符的输入输出操作,Linux特有的。
rar 
 
umask
umask只能影响文件的权限位。
#include <sys/stat.h>
mode_t umask(mode_t newmask);
打开关闭文件描述符
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
读写文件描述符
系统调用read用于从文件描述符对应的文件中读取数据。
#include <unistd.h>
ssize_t read(int fd, const void *buf, size_t count);

#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
使用ftruncate缩短文件
#include <unistd.h>
int ftruncate(int fd, off_t length)
ftruncate成功时返回0。如果出错返回-1并设置errno变量。
使用lseek定位文件指针
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
whence可以是这里列出的3个常量中的一个:
 
使用fsync同步到硬盘
 
使用fstat获得文件信息
#include <sys/stat.h>
#include <unistd.h>
int fstat(int fd, struct stat *buf);
 
 

使用fchown改变文件所有权
#include <sys/types.h>
#include <unistd.h>
int fchown(int fd, uid_t owner, gid_t group);
使用fchmod改变文件读写权
#include <sys/types.h>
#include <sys/stat.h>
int fchmod(int fd, mode_t mode);
使用flock和fcntl给文件上锁
系统调用flock请求或删除由文件描述符fd引用的文件上的一个建议性锁。
#include <sys/file.h>
int flock(int fd, int operation);
 
fcntl比flock更通用。它的用处不仅仅是给文件上锁。
原型(有3种)
#include <unistd.h>
#include <fcntl.h>
int fcntl(int fd, int cmd);
int fcntl(int fd, int cmd, long arg);
int fcntl(int fd, in tcmd, struct flock *lock);
cmd的可能取值如表11.5
 

使用ioctl
系统调用使用ioctl的作用是设置或检索文件的多种相关参数并对文件进行一些其他的操作。
#include <sys/ioctl.h>
int ioctl(int fd, int request, ...);

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条