问题标签 [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 投票
1 回答
2846 浏览

c++ - 从 'FILE* {aka _IO_FILE*}' 到 'int' 的无效转换

当试图编译这个小例子时......

...我收到有关调用lseek(). 输出是:

作为记录:我也尝试过同时使用lseek(*foo, 5, SEEK_CUR);and lseek(&foo, 5, SEEK_CUR);,但这只会让事情变得更糟。(我真的没想到这也能解决任何问题。)

参考lseek(3) 的手册页

概要
off_t lseek(int fildes , off_t offset , int wherece );

描述
lseek() 函数应为与文件描述符fildes关联的打开文件描述设置文件偏移量,如下所示:

[…………]

我将其解释为第一个参数应该是文件描述符,在本例中是foo

问:这里有什么问题?

0 投票
1 回答
66 浏览

c - update a number at the end of file during write() in C

I am testing my program to update a number (num_commit) always at the end of the file. This number is used to track how many times the files has been written. I am using lseek/SEEK_END, but I am still trying to figure out how this works. I wrote the following code to test the possibility, but the num_commit seems overwritten. I am looking for help with the correct way of doing this:

Here's my output, as you can see num_commit is overwritten by the mods value:

num_segs=10, name_length=7, real_segname=testfil, mods=200, num_commit=200

0 投票
3 回答
16472 浏览

c - 使用 lseek 在 C 中获取文件的大小?

我正在尝试通过以下操作获取 C 中文件的大小...我是 C 新手

这是我文件顶部的 struct mem:

这是使用局部变量/返回语句等的正确设置吗?

0 投票
1 回答
413 浏览

c - 不能使用 lseek 在文件末尾添加空格

我正在尝试将一些文本附加到已打开的文件中。我想在文件末尾附加 pid 号。例如:Lorem ipsum dolor sit amet orci aliquam. 14872。我的代码工作正常,除了我无法让我的程序打印文件的最后一个字符和 pid 的第一个数字之间的空格。我试图lseek()通过从文件末尾添加1偏移量来使用,正如我之前所说,失败了。我不明白出了什么问题,因为显然我得到了所有预期的结果:

然后这个输出:

这对我来说毫无意义。所以这是我的代码:

0 投票
1 回答
2091 浏览

c - 如何使用 lseek 创建带孔的文件?

我正在学习如何使用 lseek 在文件中创建漏洞。

这是我到目前为止写的代码......

当我编译并执行此代码时,我收到一个 lseek 错误,并且名称“Harry Potter”也没有被插入到文件中。这是我执行上述代码时的输出:

我什至试图捕捉所有错误。请进一步帮助我。

0 投票
1 回答
398 浏览

c - C 使用 lseek/read/write 删除大型二进制文件的一部分

我的目标是删除二进制文件中的一个或多个部分。我通过仅将所需部分复制到第二个文件来做到这一点。我有两种方法。第一个应该将来自 File1 的count字节(带有偏移量skip)附加到 File2。

然后,第二种方法应将 File1 的其余部分(从跳过到结束)附加到 File2

我的问题如下:

  1. 为什么这没有按预期工作?
  2. 我需要更改什么才能在 64 位系统上的大文件(>4GB)上使用它?

提前致谢

0 投票
1 回答
111 浏览

c - 使用 lseek 函数更改 c 中的文件位置后损坏的文件(获得相同的大小但内容损坏)

我在我的套接字应用程序中使用 lseek 在数据包丢失的情况下更改文件位置,然后重新传输丢失的数据包,所以我多次更改文件位置,我很确定我正在设置位置相关参数正确。我在客户端获得相同的文件大小没问题,但是我更改文件位置的次数越多,我发现自己无法打开传输的文件就越多。

你知道为什么会这样吗?

0 投票
2 回答
1307 浏览

c - 在 Linux 中用 C 打印文件的最后 5 行

我需要用 C 编写一个程序,该程序通过使用诸如打开、读取、写入、关闭、lseek 等基本函数打印出文件的最后五行。到目前为止我的代码:

有谁能够帮我?我想我需要将这些字符存储在数组中,然后向后打印,但我不知道如何。

0 投票
3 回答
1421 浏览

c - 在 read() 调用后 Printf 打印垃圾。偏移量始终打印为 0

输出如下:

这是一个测试文件��

0

他是一个测试文件

��

测试文件.txt:

这是一个测试文件 测试 SEEK_END 的工作原理 这是一个测试文件

我尝试了不同的偏移格式,例如 %ld,%d,但输出仍然相同。无法弄清楚为什么垃圾会出现在第一行和最后一行的末尾。请帮忙。

0 投票
2 回答
659 浏览

c - C - 函数读取(文件,缓冲区,要读取的字节)破坏字符串

我正在尝试读取一个包含 1024 行的文件,每行中有 9 个相同的字母,如果找到与此术语不匹配的行,则返回。

该文件如下,但有 1024 行:

代码:

输出:

我有 5 个具有不同字母的不同文件,每个文件都在该特定行 (954) 中给出此输出,并且该行是正确的,字母写了 9 次,最后带有 \n。

任何想法为什么会发生这种情况?如果我不使用 lseek 它可以正常工作,但我需要 lseek 将文件分成几个部分以由不同的线程进行测试。我将 0 索引放在 lseek 中,以简化给大家看。

谢谢。