#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/stat.h>
void main(){
char tmp[12]={0x0};
int i=13;
sprintf(tmp,"%11d", i);
int fd = open("transaction.txt", O_CREAT | O_RDWR);
write(fd, tmp, sizeof(tmp));
}
Я пытаюсь записать целые числа в файл.
потому что Linux не предлагает функции itoa, я должен попытаться использовать sprintf.
но я не могу считать файл результата.
Созданный файл принадлежит мне, но имеет полномочия ------xr-x
. Это означает, что мой пользователь не может считать или записать файл, и у моей группы нет доступа вообще, но странно другие пользователи могут считать его.
Файл читаем, если я работаю sudo cat transaction.txt
который дает 13
как ожидалось.
То, как я могу генерировать файл с подходящими полномочиями так, чтобы был, применимо.
Добавьте строку
int fd;
и измените открытый вызов следующим образом:
fd = open("transaction.txt", O_CREAT | O_WRONLY, 00644);