Мне было написано:
int fd = open(fileNameWithPath, O_CREAT | O_RDWR);
Но " Для вызова 'open' требуется третий аргумент, когда для 'O_CREAT' установлено ".Строка кода должна быть (для разрешений RW):
int fd = open(fileNameWithPath, O_CREAT | O_RDWR, 0x0666);
, и это прекрасно работает.
[edit] Мне было написано:
int fd = open(fileNameWithPath, O_CREAT | O_RDWR, 0x0666);
thisэто ошибка, значение umask должно быть 666, но восьмеричное, а не шестнадцатеричное:
int fd = open(fileNameWithPath, O_CREAT | O_RDWR, 00666);