Как я генерирую файл с подходящими полномочиями с помощью sprintf () и запись ()?

#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. Это означает, что мой пользователь не может считать или записать файл, и у моей группы нет доступа вообще, но странно другие пользователи могут считать его.

transaction.txt properties

Файл читаем, если я работаю sudo cat transaction.txt который дает 13 как ожидалось.

То, как я могу генерировать файл с подходящими полномочиями так, чтобы был, применимо.

1
задан 27 April 2011 в 00:32

1 ответ

Добавьте строку

int fd;

и измените открытый вызов следующим образом:

fd = open("transaction.txt", O_CREAT | O_WRONLY, 00644);
0
ответ дан 27 April 2011 в 00:32

Другие вопросы по тегам:

Похожие вопросы: