gpt4 book ai didi

c - Lseek 不工作

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:56 25 4
gpt4 key购买 nike

我正在尝试使用 lseek 检查我的 txt 文件的大小。不幸的是我不工作。我的 T.Txt 包含 16 个字符:ABCDABCDDABCDABCD 仅此而已。所以数字变量应该有 16+1。为什么是19呢?第二个问题为什么我不能使用SEEK_END-1 从最后一个位置 1 开始。?我将不胜感激。

int main(void)
{
int fd1 = open("T.txt", O_RDONLY);
long number;

if (fd1 < 0) {
return -1;
}

number = lseek(fd1, 0, SEEK_END);
printf("FILE size PROGRAM>C: %ld\n", number);

return 0;
}

最佳答案

这可能是因为文件中的 \r\n 字符,在 Windows 系统上代表换行符。

在我的机器 (Mac OS X 10.10) 上,您的代码为您的文件提供了正确的结果,前提是它的末尾没有任何换行符,即只有字符串:ABCDABCDDABCDABCD(输出然后是:17)。

您正确使用了 lseek() 函数,除了 lseek() 的结果是 off_t 而不是 long.

关于c - Lseek 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27078033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com