问题标签 [lseek]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2409 浏览

c - SEEK_HOLE 和 SEEK_DATA 在 Ubuntu 12.04.2 LTS 中不起作用

编译时出现错误:

如果我删除 SEEK_HOLE 和 SEEK_DATA 我没有问题。

我错过了包含或库吗?

生成文件:

孔测试.c:

系统:

更新:

它现在可以编译但不起作用,SEEK_HOLE 会直接跳过这个洞并寻找到文件的末尾。

0 投票
3 回答
1104 浏览

c - C将文件内容从EOF复制到SOF

我的程序几乎可以正常工作。预期目的是从末尾读取文件并将内容复制到目标文件。然而,让我感到困惑的是lseek()方法更多,所以我应该如何设置偏移量。

src现在的内容是:
Line 1
Line 2
Line 3

目前我在目标文件中得到的是:
Line 3
e 2
e 2 ...

据我了解,调用int loc = lseek(src, -10, SEEK_END);会将源文件中的“光标”移动到末尾,然后将其从 EOF 偏移到 SOF 10 个字节,并且 loc 的值将是我扣除偏移后的文件大小。然而,在 C 的 7 小时后,我几乎在这里脑死亡。

0 投票
1 回答
203 浏览

linux - /dev/watchdog 上的 lseek() 导致系统崩溃

我是这个论坛的新手,想请教专家一个问题。我编写了以下程序(更大的一部分,但这是给我带来麻烦的代码)

困扰我的是,在我以 root 身份运行该程序后,在 20-30 秒后,系统崩溃了,我似乎无法弄清楚原因。普通用户不会发生这种情况。你能就这个问题告诉我吗?

谢谢!

PS。是的,我知道 /dev/watchdog 是一个字符文件,它不可搜索,但这看起来很奇怪。

0 投票
3 回答
7490 浏览

c - 从文件中删除字节 - c

如何从文件中删除从 i 到 i 的字节。

示例:"today me and my roomates went to a party"; 如果 i = 3,我想删除第 3 个字节、第 6 个、第 9 个......等我尝试使用 lseek 和 fgets,但我不知道如何做整个事情。

我尝试了什么:

我没有做太多,因为我不知道该怎么做。也许你可以帮助我一些答案和提示。

0 投票
2 回答
745 浏览

c - 为什么在这里使用 SEEK_END 不起作用?

所以我试图从大学的一个片段中学习 C 文件 IO 操作。我的问题是它SEEK_END不起作用,因为我期望它起作用。

让我们为您提供更多详细信息:

输入.txt:

代码:

我的问题是写“xy”。我希望输出是

相反,它是

为什么不写“xy”?

0 投票
2 回答
4825 浏览

c - 在没有 lseek() 的情况下写入和读取 linux /proc/... 文件系统

在此源代码http://man7.org/tlpi/code/online/dist/sysinfo/procfs_pidmax.c.html/proc/sys/kernel/pid_max中,首先简单地读取文件(使用read系统调用),然后简单地写入(使用write系统调用)。

为什么在写作之前没有必要lseek从头开始?我认为文件偏移指针对于读取和写入是相同的(这就是相关书籍的作者所说的)。

0 投票
1 回答
931 浏览

c - SEEK_HOLE 始终指向文件末尾

我正在处理 APUE 的问题,以某种方式编写类似于 cp 的程序来复制文件(第 4 章问题 4.6)。如果文件包含漏洞(或稀疏文件),则不应处理间隙中的“\0”。理想的方法是逐块读写,其大小由 lseek(fd, current_off, SEEK_HOLE) 确定。我以 /bin/ls 为例。但是每次我查找这个文件(或其他文件)时,文件的偏移量总是设置为文件的末尾。我已经检查了这篇文章,但似乎没有令人满意的答案。这是我的代码:

我的内核是从最新的稳定树中提取的 linux 3.13.0-rc3,我的 fs 是 ext4。如果 lseek 不可用,将任何 '\0' 视为孔的开始是否合适?感谢您的回答。

0 投票
3 回答
2875 浏览

c - lseek() O(1) 复杂吗?

我知道我的问题在这里有答案:QFile seek performance。但我对答案并不完全满意。即使在查看了generic_file_llseek()ext4 的以下实现之后,我似乎也无法理解如何衡量复杂性。

比如说,我有一个 4GB 的文件,并且我知道文件中间部分的偏移量,那么在lseek()不遍历整个文件的情况下究竟如何才能到达那里?操作系统是否已经知道文件的每个字节所在的位置?

0 投票
0 回答
253 浏览

linux - 硬盘访问 fseeko 和 fread 与 lseek 和读取

如果我想做硬盘访问,使用fseekowithfreadlseekwith有什么区别吗?read

我的程序检查原始硬盘 ( /dev/sdX) 上的某些模式。我的程序当前使用fseekofread.

平台是linux。

0 投票
2 回答
438 浏览

c - lseek 中的偏移量(第二个)参数

我运行下面的程序。我预计它会出错。但它运行完美并给出了输出。

程序:

lseek也适用于

对于其他字母,它会给出错误,例如

lseekL和on是什么意思?I