问题标签 [seek]

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 回答
2812 浏览

linux - 如何使 lseek64 _actually_ 返回 64 位偏移量?

然后strace:

  • 20974464000 == 0x4E22CEC00 - 好
  • -500372480 == 0xffffffffe22cec00 - 坏

它更改为(off64_t)lseek64(fd, 0, SEEK_END);错误地调用 _llseek:

我还应该做些什么来确保它正确获得大小,而不切断主要的 dword?

0 投票
1 回答
1194 浏览

directshow - 使用 IMediaSample DirectShow.Net 寻找关键帧

据我所知,为了检查一个帧是否是关键帧,我必须检查 IMediaSample::IsSyncPoint() 方法,如果该帧是关键帧,则返回 0 (S_OK),否则返回 false其他情况。

但是 IsSyncPoint() 方法只是在抓取并传递给 ISampleGrabberCB::SampleCB() 回调方法的每一帧中返回 0。

我的回调包含的代码很简单:

我在这里想念什么?

0 投票
1 回答
1631 浏览

linux - 第二次从 Proc-FS 文件读取时使用 lseek() 是否安全

  1. 使用lseek(fd,0)然后read(fd,buf)for/proc/stat文件而不是重新打开它以获取该文件的更新内容是否安全?
  2. 打开这个文件后的mmap()调用究竟做了什么(见下文)?

我遇到的问题是 top 报告的 CPU 使用率太低(软件中断为 10% vs 100%)。strace 表示 top 不会重新打开此文件,而是会重新开始并再次读取它。不知何故,下次从这个文件中读取的内容与我/proc/stat单独运行 cat for file 时得到的内容不匹配。

此外,如果我同时在循环中运行 top 和 cat /proc/stat,则 top 开始报告正确的 CPU-Usage。

我发现的另一个区别是 top在打开文件mmap()后立即使用 call ,而不会这样做。我不确定这是否也与我的问题有关(因为在这里):/proc/statcatfilesdes=-1

我正在使用带有 2.6.32-27-server 映像的 Ubuntu 10.04.1 桌面版。CPU是英特尔Q6600。

0 投票
3 回答
1534 浏览

android - 使用 http 协议寻找(跳过)输入流的最快方法

我正在制作各种下载服务,它能够恢复以前的部分下载。我目前正在使用这样的跳过方法

我刚刚做了一个测试,在输入流中跳过 45 mb 大约需要 57 秒。我很好奇某些本机代码是如何做到这一点的,例如,媒体播放器可以立即搜索远程流的任何部分。我意识到我无法访问相同的库,但我可以实现类似的东西。

顺便说一句,那个测试是在wifi上的。在普通数据网络上,它显然要慢得多。

更新:非常简单(感谢下面)

0 投票
1 回答
986 浏览

delphi - TADOTable、Seek和clUseServer如何结合?

Delphi的ADOTable中光标位置设置为clUseServer时是否可以使用seek功能?我知道可以使用 locate 函数,但它比 seek 函数慢很多。

0 投票
1 回答
2155 浏览

ffmpeg - 在 FFmpeg 中按字节查找

我将感谢您对以下内容的建议。我正在开发一个基于 FFmpeg 的 libavformat 的视频转换器,我需要实现一个准确的搜索 API。首先,我开发了一个视频流索引器,它只保存每个数据包的演示时间戳(PTS)。然后我的编码器使用这个索引来寻找视频文件。例如,在此操作之前,我将文件重新混合到 mp4 容器。内部没有正确索引的视频需要 Remux,或者视频根本没有索引。我需要实现按字节搜索,当然还有以前构建的索引。我尝试了很多方法来实现这一点,但没有任何成功。也许你知道如何在 FFmpeg 中实现精确的字节查找?最好的祝福。

0 投票
2 回答
371 浏览

blob - 为什么在 H2 数据库上通过 getBytes(long pos, int length) 窥视 BLOB 的速度如此之慢?

我有一个需要查看 blob 的应用程序获取少量字节(通过 getBytes(long pos,int length))。斑点约为 30MB。当我要求靠近 blob 开头的字节时,性能是合理的。当我要求接近 blob 末尾的字节时,性能要差得多。查看源代码 (JdbcBlob.java),似乎 blob 是按顺序读取的,而不是随机读取的(通过输入流)。

有人知道任何解决方法吗?我是一个巨大的 H2 粉丝,这个问题不是一个交易破坏者,但我认为它可以改进。

谢谢

0 投票
5 回答
20988 浏览

c# - 使用 FileStream.Seek

我正在尝试使用 FileStream.Seek 快速跳转到一行并阅读它。

但是,我没有得到正确的结果。我已经尝试查看了一段时间,但无法理解我做错了什么。

环境:
操作系统:Windows 7
框架:.NET 4.0
IDE:Visual C# Express 2010

文件位置中的示例数据:C:\Temp\Temp.txt

编码:

我得到的输出:

我的问题是以下输出:

Line 的输出应为:0005|100!2500

我不明白为什么会这样。

难道我做错了什么?有解决方法吗?还有没有更快的方法可以使用诸如 seek 之类的方法来做到这一点?
(我正在寻找基于代码的选项,而不是Oracle 或 SQL Server。为了论证,我们还可以说文件大小为 1 GB。)

任何帮助是极大的赞赏。

谢谢。

更新:
我在这里找到了 4 个很好的答案。非常感谢。

示例时序:
基于几次运行,以下是从最佳到最佳的方法。即使是好的也非常接近最好。
在包含 10K 行的文件中,2.28 MB。我使用所有选项搜索了相同的 5000 条随机行。

  1. Seek4:经过的时间:00:00:00.0398530 ms -- Ritch Melton
  2. Seek3:经过的时间:00:00:00.0446072 ms -- Valentin Kuzub
  3. Seek1:经过的时间:00:00:00.0538210 毫秒——杰克
  4. Seek2:经过的时间:00:00:00.0889589 ms -- 按位

下面显示的是代码。保存代码后,您只需键入即可调用它TestPaddedFileSeek.CallPaddedFileSeek();。您还必须指定命名空间和“使用引用”。

`

`

0 投票
1 回答
2419 浏览

c - 倒带(文件指针),然后 fwrite。fwrite 不会覆盖文件内容吗?C

我来到这个地方。

正在写入文件,然后 rewind(fileptr) 完成,然后写入应该写入文件开头的内容。但是一开始写,不会覆盖文件内容吗?请指教。

0 投票
1 回答
1023 浏览

c++ - 检查 stdin/std::cin 是否支持查找

编辑:我在代码中有一个愚蠢的错误并修复了这个问题,所以现在可以解释了。我相应地更新了我的帖子。

以下代码显示在行缓冲区内查找是有效的。

首先,将某些内容导入程序时的结果。

其次,我输入了“a[enter]s[enter]d[enter]f[enter]”。

getc第三,我为每个/get()调用输入了“asdf” 。

搜索似乎在行缓冲区内工作。

这是代码。