2017.1.9--linux下的C语言--目录与文件

第9章 目录与文件  注意:前面已经对这方面知识进行过大致学习

9.1 文件操作的权限。

9.2 错误处理与错误号:错误捕捉错误输出应用错误号和strerror函数来实现的。

9.2.1 错误定义的理解

linux系统已经把所有的错误定义成了不同的错误号和错误常数,如果程序发生了异常,会返回一个错误的常数

也可以用strerror函数来显示为已经定义的错误信息。

9.2.2 用错误常数显示错误信息

9.2.3 用错误号显示错误信息


9.3 创建与删除目录

在linux系统中,目录就是一个文件夹,文件可以存放在目录中。-----C程序的目录操作

9.3.1 创建目录函数mkdir

函数mkdir可以在硬盘中建立一个目录,相当于mkdir命令,但与mkdir命令不同的是,这里的操作是用C语言的函数完成目录创建的。

需要两个头文件:"sys/types.h"   "sys/stat.h"

在创建目录时,由于种种原因,可能会返回一些错误常数。。。。

重点的出现的一个问题:13 段错误核心已转储-----原因还是:一个是ROOT,,,,一个是HOME,,,身份【权限】很重要,,LINUX中!!!!!!!-----这个东西是要首要考虑的!!!!!!!!!!!!!!

又出现一个错误-----注意!!!!---strerror这个函数,,要使用的话,必须要包含<string.h>这个头文件---这个书中没有加,,所以出错,,,所以说这本书中存在不少的错误

extern int errno-------这个表示的是extern表示的是外部变量的意思


9.3.2 删除目录函数rmdir

9.4 文件的创建与删除

创建文件,指的是在一个目录中建立一个空文件,可供其他程序的写入操作。删除文件指的是从磁盘中删除无用的文件。

9.4.1 创建文件函数creat

三个头文件:#include <sys/types.h>  #include <sys/stat.h> #include <fcntl.h>

注意:与创建目录不同的是,当再次运行这个程序时也能创建同名的文件,这时新创建的文件会覆盖以前的文件。


9.4.2 删除文件函数remove

9.4.3 建立临时文件函数mkstemp


9.5 文件的打开和关闭

文件的打开指的是从磁盘中找到一个文件,打开的文件处于可读、可写状态。

文件的关闭指的是释放打开的文件,使文件处于不可读写的状态。

9.5.1 打开文件函数open

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

pathname---表示要打开文件的路径字符串

flags-----系统定义的一些整型常数: O_RDONLY   只读  O_WRONLY  只写  O_RDWR 以可读写方式打开

需要的头文件:

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h> 


9.5.5 关闭文件函数close

使用完文件后需要使用close函数关闭该文件,这个操作会让数据写回磁盘, 并释放该文件所占用的资源。

需要使用这个头文件:#include<unistd.h>


9.6 文件读写

文件读写指的是从文件中读出信息或将信息写入到文件中。文件读取用read,,,,文件写入用write函数来实现。

注意:在进行文件写入的操作时,只是在文件的缓冲区中操作,可能没有立即写入到文件中,需要使用sync 、fsynx函数将缓冲区内的数据写入到文件中。

9.6.1 在文件中写字符串函数write

使用实例:用open函数打开一个文件,将一个字符串写入到这个文件中,然后关闭文件。

9.6.2 读取文件函数read

9.6.3 文件读写位置的移动:可以使用lseek函数在文件内容中的位置上面移动,这样就可以在文件中不同的位置进行读写。

所需头文件<sys/types.h>  <unistd.h>

9.6.4 将缓冲区数据写入到磁盘函数sync

头文件<unistd.h>---------------强制将写入缓冲区的数据写入磁盘。

9.6.5 将缓冲区数据写入到磁盘函数fsync

该函数与sync函数的区别在于:这个函数可以指定打开文件的编号,执行以后会返回一个值。

9.7 文件锁定

文件锁定:一个程序打开文件以后,其他的程序不能读取或写入文件

9.7.2. 文件锁定函数flock

9.7.3 文件锁定函数fcntl


9.8 文件的移动与复制

9.8.1 文件的移动函数rename

9.9 文件实例:电话本程序





















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值