KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I create a file using the code below: #include <stdio.h> #include <stdlib.h> #include <sys/stat.h> #include <sys/types.h> #include <errno.h> #include <fcntl.h> #include <unistd.h> int main() { const char* filename = "./test.out"; int fd; if(-1 == (fd = open(filename, O_CREAT|O_RDWR, 0666))) { perror("Error"); errno = 0; } else puts("File opened"); if(-1 == (close(fd))) { perror("Error"); errno = 0; } else puts("File closed"); return 0; } I specify the mode argument as 0666 , which should grant read,write access to everyone. However, an ls -l shows -rw-r--r-- 1 kmehta users 0 2012-01-29 16:29 test.out As you can see, write permissions are only granted to the owner of the file. I do not know why everyone else is not granted permissions correctly. chmod a+w test.out sets the permissions correctly though. Code compiled as gcc -Wall test.c Specs: gcc v 4.5.0 on Opensuse 11.3 64 bit
Tags (comma-separated)
Save Edits
Cancel