据我所知,popen打开管道就像文件一样允许读/写,但不会fdopen和fputs / fgets更有效率吗?
答案 0 :(得分:2)
<强> popen 强>
popen()函数通过创建管道,分叉和调用shell来打开一个进程
<强> fgets 强>
fgets()从流中读取最多一个小于大小的字符,并将它们存储到s指向的缓冲区中。
popen
打开一个管道,fgets
读取数据。一个人比另一个人工作“更好”,因为他们做了不同的事情。我想你可以说如果你想打开一个管道,popen
会更好,而如果你想读取数据,fgets
会更好,但这会推动它。
答案 1 :(得分:0)
man page for popen:通过创建管道,分叉和调用shell来打开进程。
man page for fopen:打开文件,其名称是路径指向的字符串,并将流与其关联。
man page for fgets:从流中读取最多一个小于大小的字符,并将它们存储到s指向的缓冲区中。
popen
用于打开管道(通常用于执行类似shell命令的操作),fopen
用于打开文件,然后您可以使用fgets
来读取从
因此,popen
和fgets
是用于不同目的的不同功能。