Сначала я использовал
fd = open(outputfile,O_WRONLY | O_TRUNC | O_CREAT);
, который давал мне произвольные права доступа к файлу, но теперь я использую
fd = open(outputfile,O_WRONLY | O_TRUNC | O_CREAT, 0666);
, этот код дает файлу точно такие же разрешения для файла, но онистранно.Я на самом деле хочу -rw-rw-rw-, но я получаю:
--w---x--T 1 root root 21 Apr 24 13:02 fasdfas
и в одной из других систем:
--w--wx--T 1 s8771-26 s8771-26 21 Apr 24 22:09 test1
--w--wx--T 1 s8771-26 s8771-26 21 Apr 24 22:09 test2
--w--wx--T 1 s8771-26 s8771-26 21 Apr 24 22:09 test3
--w--wx--T 1 s8771-26 s8771-26 21 Apr 24 22:09 test4
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, char ** argv)
{
int fd = open(argv[1],O_WRONLY | O_TRUNC | O_CREAT, 0666);
dup2(fd,1);
printf("TEST");
return 0;
}