Есть ли какая-либо причина (кроме синтаксических), которую вы хотите использовать
FILE *fdopen(int fd, const char *mode);
или
FILE *fopen(const char *path, const char *mode);
вместо
int open(const char *pathname, int flags, mode_t mode);
при использовании C в среде Linux?