Со страницы справочника, на которую вы ссылались:
CONFORMING TO top
POSIX.1-2001, POSIX.1-2008.
The 'e' value for type is a Linux extension.
Это функция, определенная в стандарте POSIX . И значение e
для типа является расширением linux.
Является ли стандартная функция C popen?
Нет. popen
не является стандартной функцией C, то есть она не определена в C стандарте .
Так это стандарт, или это какое-то расширение GCC? Что это?
Это стандартная функция POSIX. Это не расширение GCC. Это функция.
Тогда почему он находится в stdio.h, а не в unistd.h или как-то еще?
Объявление popen
становится видимым после включения stdio.h
в POSIX-совместимых системах, потому что так говорит стандарт POSIX. (Почему это не posix/stdio.h
или как sys/stdio.h
, это в основном по историческим причинам. Каждая система просто использует stdio.h
.)