Для проекта в моем классе у меня возникли проблемы с чтением файла, который я создал с помощью системного вызова creat (). Насколько я понимаю, creat () используется только для записи. С тех пор я изменил свой код для создания этого файла с помощью open (), поэтому мой вопрос просто из любопытства. Какой смысл в аргументе mode тогда? Первоначально я побитовый ORd разрешение на чтение и запись, и файловый дескриптор будет показывать, что у него есть эти разрешения, но когда я прочитал файл, я получил -1 возвращаемое значение. Просто странно для меня. Я также нашел этот код в руководстве, поэтому я в замешательстве. Зачем давать разрешение на чтение файла, когда моя программа не может его прочитать, но в то же время дескриптор показывает, что файл имеет разрешение на чтение?
#include <fcntl.h>
int fd;
mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
char *filename = "/tmp/file";
fd = creat(filename, mode);