我知道popen像打开文件一样打开管道以允许读/写,但是fdopen和fput/fget不是更高效吗?
发布于 2012-11-16 05:21:06
波芬
函数通过创建管道、分叉和调用shell来打开进程。
飞碟
fgets()从流中读取最多小于一个小于大小的字符,并将它们存储到由s指向的缓冲区中。
popen打开一个管道,fgets读取数据。一个并不比另一个“更好”,因为他们所做的事情不同。我想,如果您想要打开一个管道,您可以说popen更好,而如果您想要读取数据,fgets会更好,但这是在推动它。
发布于 2012-11-16 05:22:55
教皇手册页:通过创建管道、分叉和调用shell来打开进程。
fopen手册页:打开名称为路径指向的字符串的文件,并将流与其关联。
fgets手册页:从流中读取最多小于大小字符的一个字符,并将它们存储到由s指向的缓冲区中。
popen用于打开管道(通常用于执行类似于shell命令的操作),而fopen用于打开文件,然后可以使用fgets读取该文件。
因此,popen和fgets是不同用途的函数。
https://stackoverflow.com/questions/13410871
复制相似问题