lseek(lseek函数)

lseek(lseek函数)

Lseek函数原型 off_t lseek(int fd, off_t offset, int whence); 它返回的是一个偏移值

Fd:文件描述符;

Offset:偏移量

Whence:起始偏移位置:SEEK_SET/SEEK_CUR/SEEK_END

返回值:

成功:较其启始位置偏移量

失败:-1 errno

如下是使用该函数的一个demo:

#include<stdio.h>

#include<stdlib.h>

lseek(lseek函数)

#include<unistd.h>

#include<string.h>

#include<fcntl.h>

Int main(void)

{

Int fd,n;

Char msg[] = “It’s a best for search\n”;

Fd = open(“lseek.txt”,|O)RDWR|O_CREAT,0644)

If( fd < 0){

Perror(“open fail!”);

Exit(1);

}

Write(fd,msg,strlen(msg));

Lseek(fd,0,SEEK_SET) ;//修改文件读写指针位置

While( (n = read(fd, &ch,1)))

{

If(n <0){

Perror(“read error!”);

Exit(1);

}

Write(STDOUT_FILED, &che,n);

}

Close(fd);

Return 0;

}

应用场景:

1. 文件的“读”,“写”使用同一偏移位置。

2. 使用lseek获取文件大小,拓展文件大小,要想使文件大小真正拓展,必须

引起IO操作。

使用truncate函数,直接拓展文件

传入参数

1. 指针作为函数参数。

2. 通常有const关键字修饰

3. 指针作为有效参数传入,在函数内部做读操作。

传出参数

1. 指针作为函数参数。

2. 在函数调用之前,指针指向的空间可以无意义,但是必须有效

3. 在函数内部,做写操作

4. 函数调用结束后,充当返回值

传入传出参数

1. 指针作为函数参数

2. 在函数调用之前,指针指向的空间有实际意义

3. 在函数内部,先做读操作,后做写操作

4.函数调用结束后,充当函数返回值

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/30912.html

(0)
上一篇 2023-09-15 20:30
下一篇 2023-09-16 10:30

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注