在C語言中,lseek函數(shù)用于設(shè)置和獲取文件當(dāng)前位置的偏移量。其使用方法如下:
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
fd
:文件描述符,指定要操作的文件。offset
:偏移量,指定相對于whence
的位置進(jìn)行偏移。whence
:偏移的起始位置,可以是以下幾個(gè)值:
SEEK_SET
:從文件起始位置開始偏移。SEEK_CUR
:從當(dāng)前文件位置開始偏移。SEEK_END
:從文件末尾位置開始偏移。errno
。#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
int main() {
int fd = open("example.txt", O_RDONLY); // 打開文件
if (fd == -1) {
perror("open");
exit(1);
}
off_t offset = lseek(fd, 0, SEEK_END); // 獲取文件末尾位置
if (offset == -1) {
perror("lseek");
exit(1);
}
printf("文件末尾位置:%ld\n", offset);
offset = lseek(fd, 0, SEEK_SET); // 設(shè)置文件位置為起始位置
if (offset == -1) {
perror("lseek");
exit(1);
}
printf("設(shè)置文件位置為起始位置\n");
close(fd); // 關(guān)閉文件
return 0;
}
以上示例中,首先通過open函數(shù)打開文件,然后使用lseek函數(shù)獲取文件末尾位置,并打印出來。接著使用lseek函數(shù)將文件位置設(shè)置為起始位置,并打印出來。最后通過close函數(shù)關(guān)閉文件。
注意:在使用lseek函數(shù)之前,必須先通過open函數(shù)打開要操作的文件,并檢查返回值是否為-1。