50得票6回答
如何使用文件描述符刷新写入?

事实证明这个open()和fopen()的误解源于Linux 2.6.14内核上一个ARM平台下有bug的I2C驱动程序。回退到一个有效的bit bashed驱动程序解决了我在此要处理的问题的根本原因。 我正在尝试解决Linux中(I2C)串行设备驱动程序的问题。似乎通过在写入和读取...

10得票2回答
如何确定使用fgets()函数读取的字符数?

这是从man页中关于fgets()的描述:char *fgets(char *s, int size, FILE *stream); ... RETURN VALUE fgets() returns s on success, and NULL on error or when en...

21得票2回答
关闭文件指针而不关闭底层文件描述符

通过使用fdopen()和fileno(),可以使用现有的文件描述符打开流。但是,一旦使用流打开文件,正确关闭文件的方法是关闭FILE指针,即fclose()。那么如何关闭流但保留打开的文件描述符呢? 这种行为类似于调用fflush()和fileno(),然后在关闭时不再使用FILE指针。另...

30得票3回答
为什么fread函数提前到达了EOF?

我正在编写一个C语言库,将文件读入内存。它会跳过文件的前54个字节(头部),然后将剩余部分作为数据读入。我使用fseek来确定文件的长度,然后使用fread读取文件。 循环运行一次,然后因为到达EOF(无错误)而结束。最后,bytesRead = 10624,ftell(stream) = ...

10得票2回答
stdio是否总是设置errno?

当一个stdio流遇到错误(但不是EOF),该流的错误指示器将被设置,以便ferror()函数将返回非零值。我一直假设更多的信息可以在errno变量中获得。但是我该如何知道这一点? 一些函数的文档(例如在Linux下的man fopen),说明errno也会被设置。然而,man fgets并...

10得票2回答
读取.PNG文件只需前五个字节

我已经制作了一个简单的资源打包程序,用于将我的游戏资源打包到一个文件中。一切都进行得很顺利,直到我开始编写解包器。我注意到我打包的 .txt 文件大小为 26 字节,在不出现任何问题的情况下从资源文件中恢复,所有数据被保留。 然而,当我读取我在资源文件中打包的 .PNG 文件时,前 5 个字...

11得票6回答
实时获取另一个程序的输出作为输入

我有两个程序,我是这样使用它们的:$ c_program | python_program.py c_program使用 printf() 打印一些内容,而python_program.py使用 sys.stdin.readline() 读取。 我想让python_program.py在c_...

10得票3回答
printf不会打印到屏幕上

在Windows 7上使用Cygwin时,如果我尝试运行以下简单代码: #include <stdio.h> int main() { int i1, i2, sums; printf( "Enter first integer\n" ); scanf( "%d", &...

34得票3回答
C语言中等同于fstream的peek函数

我知道在C++中,可以使用in.peek();来查看下一个字符。 当尝试在C语言中“窥视”文件的下一个字符时,该怎么做呢?

24得票4回答
在C程序中,'#include <stdio.h>'到底是做什么的?

我刚开始学习C编程,编写了一些类似于“Hello world”的简单程序。 在所有这些程序中,我都把#include&lt;stdio.h&gt;放在顶部,但我不确定这到底是什么意思。我通过谷歌搜索发现,stdio.h是一个包含预处理器命令的文件,但是什么是预处理器?我想,当我编写代码时,将...