Question 1
Question
The three standard file descriptor's are opened on the program's behalf by the [blank_start]______[blank_end]
Question 2
Question
The O_CREAT flag to open(2) can be used in conjunction with [blank_start]______[blank_end] flag to create a file exclusively (atomically).
Question 3
Question
The [blank_start]_____[blank_end] flag to open(2) prevents dereferencing symbolic links and its absence is the cause of some vulnerabilities in privileged programs.
Question 4
Question
When file descriptors are open in a program and a fork(2) and exec(2) happen before closing them - the descriptors can end up being passed to a new program. The [blank_start]_____[blank_end] flag to open(2) closes them for you.
Question 5
Question
The [blank_start]____[blank_end] is a directory in the proc filesystem which contains information about each file descriptor opened by a program.
Question 6
Question
The two size types in the function prototype translate to what standard C types (in order of appearance)?
Answer
-
signed integer type, unsigned integer type
-
unsigned integer type, signed integer type
-
integer type, signed integer type
-
signed integer type, integer type
Question 7
Question
Which of the following flags to open(2) are not a part of the Single UNIX Specification?
Answer
-
O_DIRECT
-
O_LARGEFILE
-
O_NOATIME
-
O_ASYNC
-
O_DSYNC
-
O_SYNC
Question 8
Question
The creat(2) system call is equivalent to this open(2) system call
Answer
-
fd = open(pathname, O_WRONLY | O_CREAT | O_TRUNC, mode);
-
fd = open(pathname, O_WRONLY | O_TRUNC, mode);
-
fd = open(pathname, O_WRONLY | O_CREAT |O_APPEND, mode);
-
fd = open(pathname, O_WRONLY | O_APPENDT | O_TRUNC, mode);
Question 9
Question
During which system calls does the kernel set the file offset or file pointer?
Answer
-
read()
-
write()
-
lseek()
-
open()
-
close()
-
creat()
Question 10
Question
During which system calls does the kernel update a pointer called the file offset or file pointer.
Answer
-
read()
-
write()
-
close()
-
creat()
-
lseek()
-
open()
Question 11
Question
With file holes the file system doesn’t allocate any disk blocks for a hole until, at some later point, data is written into it
Question 12
Question
The return value from a successful lseek() is a?
Answer
-
file offset
-
number of seeked bytes
-
number of read bytes
Question 13
Question
Writing to a file hole performs what action?
Answer
-
Allocating disk blocks but not writing null bytes in them
-
Writing null bytes but not allocating disk blocks
-
Allocating disk blocks and writing null byes within the blocks
-
Neither, system assumes null byte are there