sys_creat  [fs/open.c]


Creates a file. This system call is identical to sys_open call with 'O_CREAT or O_WRONLY or O_TRUNC' mode flags.

Arguments

eax 8
ebx Pointer to a null-terminated string specifying the pathname of a file.
ecx File permissions to set for a newly created file. Following is the list of flags that can be used:
S_IRWXU  - owner has read, write and execute permission
S_IRUSR  - owner has read permission
S_IWUSR  - owner has write permission
S_IXUSR  - owner has execute permission
S_IRWXG  - group has read, write and execute permission
S_IRGRP  - group has read permission
S_IWGRP  - group has write permission
S_IXGRP  - group has execute permission
S_IRWXO  - others have read, write and execute permission
S_IROTH  - others have read permission
S_IWOTH  - others have write permission
S_IXOTH  - others have execute permission

Return values

If the system call succeeds the return value is the new file descriptor.
If the system call fails the return value is one of the following errno values:

-EEXIST Pathname already exists.
-EFAULT ebx points outside your accessible address space.
-EISDIR Pathname refers to a directory and the access requested involved writing.
-ELOOP Too many symbolic links were encountered in resolving the pathname.
-EMFILE The process already has the maximum number of files open.
-ENAMETOOLONG Pathname is too long.
-ENFILE The system limit on the total number of open files has been reached.
-ENOMEM Insufficient kernel memory was available.
-ENOSPC Pathname was to be created but the device containing pathname has no room for the new file.
-ENOTDIR A component used as a directory in pathname is not, in fact, a directory.
-ENXIO No corresponding device exists.
-EROFS Pathname refers to a file on a read-only filesystem and write access was requested.

Remarks

If the file is newly created, its st_atime, st_ctime, st_mtime fields (respectively, time of last access, time of last status change, and time of last modification; see sys_stat) are set to the current time, and so are the st_ctime and st_mtime fields of the parent directory. Otherwise, if the file is modified because of the O_TRUNC flag, its st_ctime and st_mtime fields are set to the current time.

Compatibility

n/a