问题标签 [stdio]
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.
c - fclose()/pclose() 可能会阻塞某些文件指针
在ing 其文件描述符阻塞之后调用fclose()
此处,直到子进程结束(可能是因为流已经结束)。dup()
但是,通过手动执行pipe()
, fork()
, execvp()
,popen()
然后dup()
ing 管道的读取文件描述符,关闭原始文件不会阻塞。
为什么会发生这种情况,我该如何关闭FILE *
返回popen()
并在其位置使用文件描述符?
更新:
我知道文档说要使用pclose()
,但是fclose()
也有块。此外,我在 glibc 代码中四处寻找,然后pclose()
只调用fclose()
. fclose()
无论使用或使用,行为都是相同pclose()
的。
c - 无法使用 fopen() 打开文件
我一直在尝试打开文件并输出文本,但我不断收到错误消息。所以我想我会从一开始就尝试打开文件。这是我的代码:
当我运行文件时,“错误”被打印到控制台,就是这样。TestFile1.txt 与我的 .exe 位于同一位置。我该如何解决?
c++ - 实现文件对象 (C++)
我一直在查看 Doom 3 SDK 代码,特别是他们的文件系统实现。
系统通过传递一个“idFile”对象来工作(至少我可以访问的代码),我注意到这个类提供了读写方法以及维护一个 FILE* 成员。
这向我表明,要么 FILE* 被“打开”并具有读写访问权限,要么文件在调用 Read() 和 Write() 之间被关闭并重新打开(具有适当的访问权限)。
这听起来正确还是我过度简化了?
如果不是这种情况(我的哪一部分怀疑它不是 - 由于速度等),是否有人对如何实现这个优雅的界面有任何建议?
请记住,我对 C++ 和 stdio 都很陌生(我很确定 iD 很喜欢)。
c++ - 打开文件进行读写的好处
任何人都可以指出一些关于打开文件进行读写而不是(例如)打开文件进行读取,关闭它然后重新打开进行写入的讨论。我已经尝试过搜索深入的信息而没有快乐。
非常感谢
makefile - 包含 stdio 生成文件
我正在尝试使用该sprintf()
功能。因此我必须在我的 C 项目中包含 stdio.h。如果我在 makefile 中不包含 stdio.h 的情况下编译项目,编译器sprintf()
会生成未知函数的错误。将 stdio.h 包含到 makefile 中会生成“没有生成目标的规则”的错误。
makefile 模板提供的选项如下:
我希望你能帮助我,因为我不想重写每一个标准函数。
斯文
ruby - Ruby stdio consts 和 globals,有什么用?
Ruby 有 stdio 的常量和全局变量。
即, consts STDIN
, STDOUT
, STDERR
, 和它们的对应变量$stdin
, $stdout
, $stderr
.
我理解常量和变量之间的区别。我知道在脚本被执行的那一刻,常量被不变地设置为文件描述符。
我也知道您可以在运行时更改(某些)变量。
我很好奇这种功能的实际用途。你为什么要这样做?你能实现什么?
看到从现实世界项目中提取的一些示例代码,甚至只是用例,会很棒。
更新:从我目前收集的信息来看,似乎在编写自己的库/程序时,您应该更喜欢使用变量而不是常量,以便其用户可以进一步使用它。对?
c - 重定向时强制程序刷新其标准输出
我有一个将输出打印到标准输出的封闭源程序。我需要解析输出。所以我使用 dup2 将输出重定向到一个 fifo(我可以从中读取分叉和执行二进制文件的父进程),然后执行程序。问题是文件中的 fprintf 调用被缓冲,因为它现在正在写入文件。
在调用 exec 之前,我尝试在标准输出上使用 _IONBF 调用 setvbuf。但问题仍然存在。
为什么 setvbuf 对我没有帮助?
我怎样才能强制输出被刷新?
c - fgets() linux vs mac
mac 上的 fgets 是否会读取到回车符 '\r' 或者它是否也取决于新行 '\n'?
原因是我使用 fgets 一次读取一行文件。但是,如果它在一个 mac 文件上运行,并且行尾只有 '\r',它就无法执行我想要的操作。(在linux中运行)
我不想编写库类型函数来处理交叉兼容性问题。我可以使用另一个标准功能吗?
c - 如何停止从C中的文件读取
我只是想读取文件的每个字符并将其打印出来,但是当文件完成读取时,但我得到了一堆?读完之后。我如何解决它?
c - C 相当于 fstream 的 peek
我知道在 C++ 中,您可以使用以下命令查看下一个字符:in.peek();
。
当试图“偷看”C 中文件的下一个字符时,我将如何处理这个问题?