问题标签 [fread]

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 投票
2 回答
5006 浏览

c - fread 仅 .PNG 文件的前 5 个字节

我制作了一个简单的资源打包器,用于将我的游戏资源打包到一个文件中。一切都很顺利,直到我开始编写解包器。我注意到我打包的 .txt 文件 - 26 字节 - 很好地从资源文件中出来,没有任何问题,所有数据都保留了。但是,当读取我打包在资源文件中的 .PNG 文件时,前 5 个字节是完整的,而其余的则完全无效。

我将其追溯到打包过程,我注意到 fread 仅读取 .PNG 文件的前 5 个字节,而我终其一生都无法弄清楚原因。它甚至会触发“EOF”,表明该文件只有 5 个字节长,而实际上它是一个 787 字节的 PNG 小多边形,100 像素 x 100 像素。

我什至通过制作一个单独的应用程序来简单地将这个 PNG 文件读入缓冲区来测试这个问题,我得到了相同的结果,并且只读取了 5 个字节。

这是那个小的独立应用程序的代码:

有人可以指出我的愚蠢错误吗?

0 投票
2 回答
593 浏览

php - 如何在 PHP 中读取巨大的文本文件?

我有几个大小超过30MB.

我如何从 PHP 中读取如此巨大的文本文件?

0 投票
1 回答
197 浏览

php - 加载缓存文件比不缓存需要更长的时间 - 读取缓存文件不是问题,它会输出它

我有一个有几个数据库查询的站点,并且有很多访问者,所以我认为 id 缓存它。

这是在 php 中,所以我使用 ob_start() 等来获取内容并保存文件。这很快。

它需要 0.05 秒。(我什至不需要缓存)。

问题在于加载文件。

如果我这样做:

它需要 0.43 秒。

如果我做

(即读取文件,不输出)它比 0.05 快。

如果我那么做

再次需要 0.4 秒。

有什么想法可以加快速度吗?似乎基本上一次回显(或者无论 readfile 这样做)完整的缓存比仅仅动态生成页面需要更长的时间。

ps 缓存文件的文件大小约为 41 KB。我已经进行了全面测试,以确保问题在于大文件的加载。做一个 readfile($smallfile); 很快。仅当缓存文件很大时输出缓存文件时速度较慢

编辑 - 我也在另一个站点上使用这个脚本,缓存文件要小得多(非常基本的页面),它可以加快速度。需要大缓存文件,因为它在页面上有很多数据,所以我不能从 40kb 得到它。

0 投票
2 回答
526 浏览

c - fread() 没有写入缓冲区

嗨, fread 没有从文件读取任何内容到缓冲区,我不知道为什么。有人可以给我一个提示或推动正确的方向吗?

0 投票
0 回答
403 浏览

c - 当只写字节就足够时,为什么 fwrite 同时具有 size 和 count 参数?

可能重复:
fread/fwrite 将大小和计数作为参数的理由是什么?

在 C 语言中,fwrite 和 fread 获取要写入的元素数量和每个元素的大小。似乎只有一个参数来告诉应该写入的字节数会更明显和更通用,因为要写入的字节数简单地等于元素乘以大小。设计这些功能是有充分的理由,还是古代失传了?

0 投票
5 回答
8750 浏览

c - 大文件的 fread 会失败吗?

我必须分析一个 16 GB 的文件。我正在使用fread()and顺序读取文件fseek()。可行吗?fread()对这么大的文件有用吗?

0 投票
6 回答
4894 浏览

c - How to interrupt a fread call?

I have the following situation:

There is a thread that reads from a device with a fread call. This call is blocking as long as there is no data send from the device. When I stop this thread it remains hanging inside this thread.

Now I found the following inside the man page of fread:

ERRORS

On all systems that conform to the Single UNIX Specification, the fread() function sets errno as listed for the following conditions:

[EINTR] The read operation was terminated due to the receipt of a signal, and no data was transferred.

That would mean there is a way to interrupt the call from a different thread. But I have no idea how. Can someone tell me how to send a signal to interrupt the fread call? And what signal I need to send?


Update 08-10-10 09:25

I still haven't got it to work. I tryed the kill() and pthread_kill() with different signals. But nothing seems to interrupt the fread() call. The only thing that I got working is killing the entire application, but that's not what I want.

0 投票
3 回答
7570 浏览

php - PHP 读取问题

我在工作中创建 PHP telnet 脚本以收集网络数据时遇到了问题。

因为从“操作:状态”命令返回的数据量可以是任何大小......我担心在第 13 行使用带有 fread() 的静态数字。我也尝试过使用 fgets() 但它只抓取第一行数据(META HTTP 行...没有表格)。如何使用 PHP 从套接字中获取任意数量的数据?请帮忙

0 投票
3 回答
489 浏览

iphone - 从 iphone 中的 .wav 文件读取时数据为空?

我正在尝试读取 .wav 文件并将原始数据作为 FFT 算法的输入。我已使用以下代码读取 .wav 文件。

ChunkID 给出值“caff”,格式给出“desc”。我在数据中看不到任何价值。我错过了什么吗?我想将原始声音数据作为 FFT 的输入。

0 投票
2 回答
113 浏览

php - 当文件应该是静态的时,为什么 fopen 会从对 Twitter 的调用中生成不同的文件?

我正在尝试使用他们的 API 获取 Twitter 用户的列表。当我在浏览器 (http://api.twitter.com/1/statuses/followers.xml?screen_name=atomictom) 中查询 API 时,它会返回一个包含 100 个用户的 XML 文档,这是应该的。

但是,当从我的 php 文件执行查询时:

它只返回 1 个,有时返回 2 个用户。当我刷新时它实际上会有所不同!关于为什么会发生这种情况的任何想法?我怀疑 fopen 或 fread 有问题。不幸的是,在 fread 中我不能使用 filesize($file),因为它是资源而不是字符串。

非常感谢你的帮助!