文件 IO(系统调用)

1、open

 

 

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
int main()
{
    int fd;
    fd=open("test.txt",O_RDONLY);
    if (fd==-1)
    {
        perror("open");
        return -1;
    }
    printf("Done");
    
    close(fd);
    return 0;
}

read/write

        文件I/O中的read和write是用于读取和写入文件数据的函数。

read函数用于从文件中读取数据。它的原型如下:

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

- fd是文件描述符,表示要读取的文件。
- buf是用于存储读取数据的缓冲区。
- count是要读取的字节数。

read函数会尝试从文件中读取指定数量的字节,并将其存储在缓冲区buf中。它返回实际读取的字节数,如果返回值为0,则表示已到达文件末尾,如果返回值为-1,则表示读取出错。并设置错误号

write函数用于向文件中写入数据。它的原型如下:

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

- fd是文件描述符,表示要写入的文件。
- buf是包含要写入数据的缓冲区。
- count是要写入的字节数。

write函数会将缓冲区buf中的数据写入到文件中。它返回实际写入的字节数,如果返回值为-1,则表示写入出错。并设置错误号

lseek

lseek 函数是一个用于在文件中移动文件指针的系统调用函数。它可以用于改变文件当前的读写位置。

lseek 函数的原型如下:

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

- fd 是文件描述符,用于指定要操作的文件。
- offset 是一个偏移量,用于指定要移动的字节数。正值表示向文件末尾方向移动,负值表示向文件开头方向移动。
- whence 是一个标志,用于指定偏移量的基准位置。常见的取值有:
- SEEK_SET:从文件开头开始计算偏移量。
- SEEK_CUR:从当前位置开始计算偏移量。
- SEEK_END:从文件末尾开始计算偏移量。

lseek 函数的返回值是新的文件指针位置,如果出现错误,返回值为 -1。

通过调用 lseek 函数,我们可以在文件中随意移动文件指针,以便进行读取、写入或其他文件操作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值