popen 是标准 C 函数吗?
Is popen standard C function?
正在阅读函数 popen。
在headerstdio.h
(标准header),
它 returns FILE*
(标准 IO 结构,不同于 unistd.h
的 Unix 函数),
但我在任何 C 标准参考网站上都找不到它。
它是标准的,还是某种 GCC 扩展?这是什么?
来自您链接的手册页:
CONFORMING TO top
POSIX.1-2001, POSIX.1-2008.
The 'e' value for type is a Linux extension.
它是 POSIX 标准中定义的函数。类型的 e
值是 linux 扩展名。
Is popen standard C function?
没有。 popen
不是标准的 C 函数,这意味着它没有在 C standard.
中定义
So is it standard, or is it some kind of GCC extension? What is it?
这是一个标准的 POSIX 函数。它不是 GCC 扩展。它是一个函数。
Then why it's in stdio.h and not in unistd.h or something?
popen
声明在 POSIX 兼容系统上包含 stdio.h
后可见,因为 POSIX 标准如此规定。 (为什么它不是 posix/stdio.h
或者像 sys/stdio.h
这主要是出于历史原因。每个系统都只使用 stdio.h
。)
正在阅读函数 popen。
在headerstdio.h
(标准header),
它 returns FILE*
(标准 IO 结构,不同于 unistd.h
的 Unix 函数),
但我在任何 C 标准参考网站上都找不到它。
它是标准的,还是某种 GCC 扩展?这是什么?
来自您链接的手册页:
CONFORMING TO top
POSIX.1-2001, POSIX.1-2008.
The 'e' value for type is a Linux extension.
它是 POSIX 标准中定义的函数。类型的 e
值是 linux 扩展名。
Is popen standard C function?
没有。 popen
不是标准的 C 函数,这意味着它没有在 C standard.
So is it standard, or is it some kind of GCC extension? What is it?
这是一个标准的 POSIX 函数。它不是 GCC 扩展。它是一个函数。
Then why it's in stdio.h and not in unistd.h or something?
popen
声明在 POSIX 兼容系统上包含 stdio.h
后可见,因为 POSIX 标准如此规定。 (为什么它不是 posix/stdio.h
或者像 sys/stdio.h
这主要是出于历史原因。每个系统都只使用 stdio.h
。)