博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2017.1.9--linux下的C语言--目录与文件
阅读量:3734 次
发布时间:2019-05-22

本文共 1929 字,大约阅读时间需要 6 分钟。

第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 文件实例:电话本程序

转载地址:http://qqyin.baihongyu.com/

你可能感兴趣的文章
在高可用的hive下执行bin/schematool -dbType mysql -initSchema报错
查看>>
hbase配置高可用
查看>>
linux下卸载和安装mysql
查看>>
在初始化namenode时:java.net.NoRouteToHostException: 没有到主机的路由;
查看>>
hive-hbase
查看>>
浅谈scala-API的基础概念及简单例子
查看>>
spark的历史服务器配置
查看>>
spark的API操作
查看>>
SparkSql
查看>>
SparkRdd-scala版本
查看>>
spark常见算子
查看>>
scala符号初体验
查看>>
kafka生产者常用参数含义
查看>>
mysql编写函数
查看>>
面试笔试题之hql
查看>>
sql函数之cast()
查看>>
hql中substr函数截取字符串匹配
查看>>
mysql之指定ip、用户、数据库权限
查看>>
zookeeper的读和写数据流程(有图欧)
查看>>
bin/schematool -dbType mysql -initSchema HiveMetaException: Failed to get schema version.
查看>>