Я впервые работаю с posix; Я включен:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
И у меня есть этот фрагмент.
stat(pathname, &sb);
if ((sb.st_mode & S_IFMT) == S_IFREG) {
/* Handle regular file */
}
Но используя GCC 4.8.3 в Gentoo, если я скомпилировал с -std=c99 или -std=c11 или -std=gnu99 или -std=gnu11, я получил эту ошибку:
error: ‘S_ISFMT’ undeclared (first use in this function)
Если я опускаю -std=*, я не получаю ошибок. Но мне также нужны все возможности -std=c99 (например, ключевое слово limited или for(int i;;) и т. д.). Как мне скомпилировать свой код?