ISO C ++ и печально известное подчеркивание

Возможный дубликат:
Почему getcwd () не соответствует стандарту ISO C ++?

После поиска доступности execvp в Windows, особенно с VisualStudio, я получил http://msdn.microsoft.com/en-us/library/ms235414.aspx ...

Однако в нем говорится, что я должен использовать _execvp вместо execvp. GCC, похоже, также поддерживает _execvp. Но в чем дело с подчеркиванием? почему использование _execvp более совместимо с ISO C ++, чем execvp?

Кроме того, не будет ли термин устаревший означать, что execvp будет удален с некоторой неопределенной версией VisualStudio?


person Community    schedule 17.10.2010    source источник
comment
Дубликат: stackoverflow.com/questions / 647704 /. Обычно имена, начинающиеся с подчеркивания в глобальном пространстве имен зарезервированы для реализаций, поэтому им следует их использовать.   -  person GManNickG    schedule 18.10.2010
comment
И да, это означает, что он может исчезнуть при любом выпуске.   -  person GManNickG    schedule 18.10.2010
comment
@GMan: заметил ... это немного странно. :-)   -  person    schedule 18.10.2010
comment
Если вы хотите использовать имя POSIX, просто включите заголовок POSIX. <unistd.h> не является частью стандартной библиотеки C, поэтому, включив ее, вы пишете стандартную программу POSIX, а не стандартную программу C. Точно так же это не то, что GCC поддерживает или не поддерживает, это проблема операционной системы. Mac OS X использует GCC, но не определяет _execvp.   -  person Potatoswatter    schedule 18.10.2010