libcamera: file: Create the file on open() if it doesn't exist
When a file is opened in WriteOnly or ReadWrite mode, create it if it doesn't exist. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
@@ -148,8 +148,9 @@ bool File::exists() const
|
||||
* \param[in] mode The open mode
|
||||
*
|
||||
* This function opens the file specified by fileName() in \a mode. If the file
|
||||
* doesn't exist and the mode is WriteOnly or ReadWrite, this
|
||||
* function will attempt to create the file.
|
||||
* doesn't exist and the mode is WriteOnly or ReadWrite, this function will
|
||||
* attempt to create the file with initial permissions set to 0666 (modified by
|
||||
* the process' umask).
|
||||
*
|
||||
* The error() status is updated.
|
||||
*
|
||||
@@ -163,8 +164,10 @@ bool File::open(File::OpenMode mode)
|
||||
}
|
||||
|
||||
int flags = (mode & ReadWrite) - 1;
|
||||
if (mode & WriteOnly)
|
||||
flags |= O_CREAT;
|
||||
|
||||
fd_ = ::open(name_.c_str(), flags);
|
||||
fd_ = ::open(name_.c_str(), flags, 0666);
|
||||
if (fd_ < 0) {
|
||||
error_ = -errno;
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user