问题标签 [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.
c - lseek 给出 ESPIPE 错误
我打开了一个普通文件,它充当记录数据库。我打开它为:
然后在我的find_record
函数中,我将偏移量移到开头。
它抛出一个ESPIPE
错误。现在我不知道发生了什么。我的文件描述符是否被视为管道?如果是,为什么?
真的lseek
在工作吗?它应该是因为ret_val
不是-1。
c - C 中的流引擎最佳实践
语言:C / ENV:Linux
我正在开发一个流引擎,现在我可以启动、停止和暂停流,但是寻找是让我很头疼的操作,我之前已经在这里问过一个问题,并修复了代码中的一些问题答案。
使用lseek()函数,我将打开的流文件描述符作为第一个参数传递,另外我使用 UDP 进行传输,类似于以下代码:
每当我在流式传输时尝试搜索时,流式传输停止并且图片挂起。
有什么我应该注意的吗?例如:例如在搜索文件后尝试sleep()或nanosleep()以使更改生效。
我找不到此类引擎中最佳实践的示例、论文或相关文章。
编辑:
经测试,文件似乎继续流,但网络上的接收设备不再捕获流连接,并计算减去查找时间后完成所需的时间,流似乎正常完成。
代码片段:
c - 寻求不工作
我正在尝试使用 lseek 检查我的 txt 文件的大小。不幸的是我不工作。我的 T.Txt 包含 16 个字符:ABCDABCDDABCDABCD 仅此而已。所以数字变量应该有16+1。为什么是19呢?第二个问题为什么我不能使用 SEEK_END-1 从最后一个位置 1 开始。?我将不胜感激。
allocation - lseek 命令(磁盘分配)
“lseek 命令根据指令 wherece 将描述符文件的偏移量重新定位到参数偏移量,主要用于索引磁盘分配的文件系统实现”
我正在阅读我教授的简报并看到了这个声明。我不明白的是 lseek 命令与链接和连续相比如何与索引磁盘分配相关联。有人可以解释为什么它说索引磁盘分配比连续或链接更容易实现吗?
从我从另一个来源读到的内容:“lseek() 命令将降级为 O(N) 时间,因为我们需要按顺序扫描文件分配表以访问文件数据。”
这不会更多地与连续磁盘分配有关,因为它会按顺序阻止分配的数据。
c - 使用结构时的 mmap 偏移
我有这个结构:
我想在共享内存文件中多次使用该结构。我已经验证了它仅用于一次用途。
当我再次运行循环时,写入从共享内存文件的开头开始,覆盖之前的内容。如何移动偏移量以便支持更多条目进入共享内存?我试过这两个:
任何建议将不胜感激。`
c - 如何使用 lseek() 确定偏移光标是否位于 EOF?
如何通过lseek()
仅使用来确定偏移光标当前是否位于 EOF?
c - 调用 lseek() 时,POSIX read() 函数不读取任何字节
我有以下程序
以及 /var/testfile 中的以下内容:
程序的输出:
我不明白为什么在 lseek() 调用后 read() 函数不读取任何字节。这是什么原因?我希望得到与第一次 read() 函数调用相同的结果。
c - 使用 lseek() 打印出重复的字符
运行这个给了我。
测试文件只包含单词“TEST”。我希望能够向后打印单词。
c - C - 读取文件中的结构
嗨,我想读取我在文件中写入的结构中的一些信息,fwrite
但是有一个问题我无法提取这些信息。我有2个文件
ttfs.h:
tfs_create.c:
有了这个,我创建了一个包含 7 个块的磁盘,并将所有 7 个块写入我的文件中。在我的第一个块中,我用小端写了我的磁盘大小(7)。所以 block[0] = 00, block[1] = 00, block[2] = 01, block[3] = 11 或类似的东西。
但是当我打印我的结果时,我得到:
不是我所期望的,我没有尝试read
,我得到了相同的结果。所以我的程序没有从磁盘写入信息。或者当我在磁盘中写入我的块时出现问题?
c - 使用 read write 和 lseek 打印文件或标准输入的最后 10 行
我正在实现 tail 函数,我只应该使用read()
,write()
和lseek()
I/O,到目前为止我有这个:
到目前为止,它适用于超过 10 行的文件,但是当我传递一个少于 10 行的文件时它会刹车,它只打印该文件的最后一行,我无法让它与stdin
. 如果有人能给我一个如何解决这个问题的想法,那就太好了:D