我想用GCC 4.9(实验)在OS X 10.9上编译一个程序。 出于某种原因,我在编译时收到以下错误: gcc: fatal error: stdio.h: No such file or directory 然后我尝试了一个简单的Hello World程序: #include <stdio.h> int main(int argc, const char *argv[]) { printf("Hello, world!"); return 0; } 再次运行gcc -o ~/hello ~/hello.c ,我得到了同样的错误。 我正在使用一个gcc的实验版本,但似乎难以置信的是,在导入stdio时会有一个发生错误的版本。 有什么可能导致这个问题,如何解决?
如果有几个线程在同一个FILE*variables上同时调用fflush() ,会发生什么不好的情况(如未定义的行为,文件损坏等) 澄清:我不是指同时写入文件。 我只是说同时冲洗它。 线程不会同时读取或写入文件(它们只在临界区内写入文件,一次只写一个线程)。 他们只在关键部分之外冲洗,尽快释放关键部分,让其他人做其他工作(文件写作除外)。 虽然可能发生一个线程正在写入文件(在关键部分内),而另一个线程正在刷新文件(在关键部分之外)。
在Unix中,如果你有一个文件描述符(例如从一个套接字,pipe道或从你的父进程inheritance),你可以用fdopen(3)打开一个缓冲的I / O FILE*stream。 在Windows上是否有相同的HANDLE ? 如果你有一个从你的父进程(与stdin,stdout或stderr不同)inheritance的HANDLE或CreatePipe一个pipe道,是否有可能从它获得缓冲的FILE*stream? MSDN不logging_fdopen ,但是与_open返回的整型文件描述符一起使用,而不是genericsHANDLE 。
我正在做一个简单的应用程序,需要彩色输出。 我怎样才能让我的输出颜色像emacs和bash做? 我不关心Windows,因为我的应用程序只适用于UNIX系统。
可能重复: c / c ++函数的源代码 我想知道在哪里可以find使用的C代码,所以当我写printf(“Hello World!”); 在我的C程序知道它必须打印该string到STDOUT。 我看了<stdio.h>,但在那里我只能find它的原型int printf(const char *格式,…),但不是它看起来像内部。
在新的C ++代码中,我倾向于使用C ++ iostream库而不是C stdio库。 我注意到一些程序员似乎坚持stdio,坚持它更便携。 这是真的吗? 有什么更好的使用?
我想重新打开stdin和stdout (也许是stderr而我在它)文件句柄,以便将来调用printf()或putchar()或puts()将去到一个文件,以后调用getc()这将来自一个文件。 1)我不想永久失去标准的input/输出/错误。 我可能希望稍后在程序中重用它们。 2)我不想打开新的文件句柄,因为这些文件句柄将不得不围绕很多或全局(不寒而栗)传递。 3)我不想使用任何open()或fork()或其他系统相关的函数,如果我不能帮助它。 所以基本上,这是否工作: stdin = fopen("newin", "r"); 而且,如果是这样,我怎样才能得到stdin的原始价值? 我是否必须将它存储在FILE * ,稍后再回来?
当我尝试读取/parsinginput时,遇到我的C程序问题。 帮帮我? 这是一个FAQ条目。 StackOverflow有许多与读取C语言input有关的问题,答案通常集中在特定用户的具体问题上,而不是真正地绘制整个图像。 这是一个全面涵盖一些常见错误的尝试,所以这个特定的问题家族可以简单地将它们标记为这个问题的重复: 为什么最后一行打印两次? 为什么我的scanf("%d", …) / scanf("%c", …)失败? 为什么gets()崩溃? … 答案被标记为社区维基。 随意改进(谨慎)扩展。