文件1

1linux中一切都是文件

文件有2中方式:

1:文件描述符 (0,STDIN_FILENO),(1,STDOUT_FILENO),(2,STDERR_FILENO)

2文件指针 (文件描述符和文件指针(FILE *)一一对应,(0,stdin)(1,stdout)(2,stderr)


两者之间的转换

(1)int fileno(FILE *stream)     //文件指针转换成文件描述符

(2)FILE *fdopen(int fd,const char *mode) //文件描述符转换成指针


1.open

int open(const char *pathname,int flags) ;

int open(const char *pathname,int flags,mode_t mode);

flags常用值:

1:O_RDONLY 打开一个供读取的文件

2:O_WRONLY打开一个供写入的文件

3:O_RDWR 打开一个可供读写的文件

4:O_APPEND 写入数据将被追加到文件尾

5:O_CREAT 打开文件,若不存在则创建文件

6;O_EXCL 如果已将有O_CREAT且文件存在,则报错

7:O_TRUNC  打开的时候,将文件清空

2.close

 int close(int fd); //关闭文件描述符

3.read

         ssize_t read(int fd,void *buf,size_t count);//成功时返回从文件复制到缓存区的字节数

4.write

ssize_t write(int fd,const void *buf,size_t count);

注意write返回大于0时,并不代表buf内容写到了磁盘上,只是copy到内核缓存区中,要实现将缓存区内容真正

拷贝到磁盘上,调用int fsync(int fd)或在open中指定O_SYNC

5.lseek

off_t lseek(int fd,off_t offset,int whence);

whence取值  SEEK_SET SEEK_CUR SEEK_END

注意一个空洞文件的产生

6.opendir

DIR *opendir(const char *name);

7.readdir

struct dirent *readdir(DIR *dirp);

8.closedir

int closedir(DIR *dirp);

9.rmdir 

int rmdir(const char *pathname);

10.chmod

int chmod(const char *path,mode_t mode);//更改权限

11.chown

int chown(const char *path,uid_t owner,gid_t group);//更改文件所有者/所属组



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值