阅读有关函数popen的信息。
它在标头stdio.h
(标准标头)中,它返回FILE*
(标准 IO 结构,与 Unix 函数不同unistd.h
),但我在任何 C 标准参考网站上都找不到它。
那么它是标准的,还是某种 GCC 扩展?它是什么?
阅读有关函数popen的信息。
它在标头stdio.h
(标准标头)中,它返回FILE*
(标准 IO 结构,与 Unix 函数不同unistd.h
),但我在任何 C 标准参考网站上都找不到它。
那么它是标准的,还是某种 GCC 扩展?它是什么?
从您链接的手册页:
CONFORMING TO top
POSIX.1-2001, POSIX.1-2008.
The 'e' value for type is a Linux extension.
它是POSIX标准中定义的函数。type的e
值是一个 linux 扩展。
popen 是标准的 C 函数吗?
No.popen
不是标准的 C 函数,这意味着它没有在C 标准中定义。
那么它是标准的,还是某种 GCC 扩展?它是什么?
这是一个标准的 POSIX 函数。它不是 GCC 扩展。它是一个函数。
那为什么它在 stdio.h 而不是 unistd.h 或其他什么?
该popen
声明在包含 POSIX 兼容系统后可见stdio.h
,因为 POSIX 标准是这样说的。(为什么不是posix/stdio.h
或喜欢sys/stdio.h
它主要是出于历史原因。每个系统都只使用stdio.h
. )