02、Linux文件系统与设备文件

02、Linux文件系统与设备文件

一、Linux文件操作

1.1、 文件操作系统调用

1、创建文件
/**
 * @brief 创建一个文件
 * 
 * @param  filename         --文件名
 * @param  mode             --文件存取权限
 * @return int              --文件描述符
 */
int creat(const char *filename, mode_t mode);
2、打开
/**
 * @brief 打开一个文件
 * 
 * @param  pathname         --文件名
 * @param  flags            --文件打开权限标志
 * @param  mode             --文件访问权限标志
 * @return int              --文件描述符
 */
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
文件打开标志含义
O_RDONLY以只读方式打开
O_WRONLY以只写方式打开
O_RDWR以读写方式打开
O_APPEND以追加方式打开
O_CREAT创建一个文件
O_EXEC如果使用了O_CREAT而且文件已经存在,就会发生一个错误
O_NOBLOCK以阻塞方式打开
O_TRUNC如果文件已经存在,则删除文件的内容
文件访问标志含义
S_IRUSR用户可读
S_IWUSR用户可写
S_IXUSR用户可执行
S_IRWXU用户可读、写、执行
S_IRGRP组可读
S_IWGRP组可写
S_IXGRP组可执行
S_IRWXG组可读、写、执行
S_IROTH其他人可读
S_IWOTH其他人可写
S_IXOTH其他人可执行
S_IRWXO其他人可读、写、执行
S_ISUID设置用户执行ID
S_ISGID设置组执行ID
3、读写
/**
 * @brief 读写一个文件
 * 
 * @param  fd               --文件描述符
 * @param  buf              --缓存区指针
 * @param  length           --缓存区大小,字节为单位
 * @return int              --实际读写字节数
 */
int read(int fd, const void *buf, size_t length);
int write(int fd, const void *buf, size_t length);
4、定位
/**
 * @brief 定位一个文件
 * 
 * @param  fd               --文件描述符
 * @param  offset           --相对偏移字节数,可以取负值
 * @param  where            --文件相对位置标志
 * @return int              --偏移后相对文件头的位置
 */
 int lseek(int fd, offset_t offset, int where);
文件相对位置标志说明
SEEK_SET相对文件开头
SEEK_CUR相对文件读写指针的当前位置
SEEK_END相对文件末尾
5、关闭
/**
 * @brief 关闭一个文件
 * 
 * @param  fd               --文件描述符
 * @return int              --操作运行状态
 */
 int close(int fd);

1.2、C库文件操作

二、Linux文件系统

目录名说明
/bin包含基本命令,这个目录下文件都是可执行的
/sbin包含系统命令,大多数涉及系统管理命令,这个目录下文件都是可执行的
/dev设备文件存储目录,用用程序通过对这些文件的读写和控制,以访问实际的设备
/etc系统配置文件存储目录
/lib系统库文件存放目录
/mnt一般用于存放挂在存储设备的挂载目录
/opt有些软件会被安装在这里
/proc操作系统运行时,进程及内核信息存放在这个目录。该目录不是真正的文件系统,存在于内存中
/tmp用户程序运行,有事会产生临时文件
/usr系统存放程序的目录,比如用户命令,用户库等
/var目录内的文件内容经常变动
/sys内核支持的sysfs文件系统被映射到此目录
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值