Linux学习笔记七:文件操作(系统调用方式)

本文详细介绍了Linux系统中常用的文件操作API,包括open、creat、close、lseek、read及write等函数的使用方法和参数说明。通过这些API,开发者可以实现对文件的基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先需要问的是Linux中有没有像java doc 那样的API查看文档呢?

结果是肯定的,查看方法有二:

1.在命令行用man XXX 查看即可 ,按q退出。如查看open()函数,man open 即可,按空格键查看下一页;

2.也可登录Linux man-pages主页查看:http://man7.org/linux/man-pages/dir_all_alphabetic.html,在这里我们可以查看到所有的API接口;

系统调用方式的文件操作主要用到的函数有如下几个:

1.open SYNOPSIS top

       #include <sys/types.h>
       #include <sys/stat.h>
       #include <fcntl.h>

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

       int creat(const char *pathname, mode_t mode);

函数返回的是一个非负整数作为文件描述符,而该描述符的范围是0-OPEN_MAX,该描述符用于下面将要介绍的read,write等函数中作为输入参数,所以一般都要用变量把文件描述符存储起来。

pathname是要打开或创建的文件名,flags参数用于指定文件的访问方式且只能为:O_RDONLY,O_WRONLY, O_RDWR中的一个或多个(必须),当然还可以或上别的参数如O_APPEND等(可选),具体查看文档。

2.creat

#include <sys/types.h>
       #include <sys/stat.h>
       #include <fcntl.h>

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

       int creat(const char *pathname, mode_t mode);

3.close

  #include <unistd.h>

       int close(int fd);
fd是所要关闭的文件描述符.

4.lseek

SYNOPSIS top

       #include <sys/types.h>
       #include <unistd.h>

       off_t lseek(int fd, off_t offset, int whence);
若成功则返回新的文件偏移量,出错则返回-1; offset 与whence相关,其中whence可取值为:
       SEEK_SET         文本开始处
              The offset is set to offset bytes. 

       SEEK_CUR         当前值
              The offset is set to its current location plus offset bytes.

       SEEK_END         文本结尾处
              The offset is set to the size of the file plus offset bytes.

5.read

SYNOPSIS top

       #include <unistd.h>

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

若成功则返回读到的字节数,若已到文末返回0,出错返回-1; void * 表示普通指针 buf保存读取数据,count 读取字节数;


6.write

SYNOPSIS top

       #include <unistd.h>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值