Unix – Using the open() system call

c++fileunix

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!

Best Solution

You probably need the third argument. For example:

open('path',O_WRONLY|O_CREAT,0640);