I'm writing a program that writes output to a file. If this file doesn't exist, I want to create it.
Currently, I'm using the following flags when calling open: O_WRONLY | O_CREATE
However, when this creates the file, it doesn't give me any permissions to write to it...
How can I use open so that it creates a file if it doesn't exist, but will create it with necessary permissions when needed?
Thanks!
You probably need the third argument. For example:
open('path',O_WRONLY|O_CREAT,0640);
Just use the optional third argument to open
:
int open(const char* pathname, int flags, mode_t mode);
so like this:
open("blahblah", O_CREAT | O_WRONLY, S_IRUSR | S_IWUSER | S_IRGRP | S_IROTH);
See man open(2)
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With