Como eu gero um arquivo com permissões adequadas usando sprintf () & write ()?

1
#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));
}

Estou tentando escrever inteiros em um arquivo.
porque o linux não oferece itoa função, eu tenho que tentar usar sprintf .
mas não consigo ler o arquivo de resultados.

O arquivo criado é de minha propriedade, mas tem permissões ------xr-x . Isso significa que meu usuário não pode ler ou gravar o arquivo e meu grupo não tem acesso, mas estranhamente outros usuários podem lê-lo.

O arquivo é legível se eu executar sudo cat transaction.txt , o que dá 13 como esperado.

Como posso gerar um arquivo com permissões adequadas para que seja utilizável.

    
por KayKay 26.04.2011 / 18:02

1 resposta

0

Adicione a linha

int fd;

e modifique a chamada em aberto da seguinte forma:

fd = open("transaction.txt", O_CREAT | O_WRONLY, 00644);
    
por enzotib 26.04.2011 / 22:38