System Programming Test Answers



1. Which of the following system calls can be used to send a message via a connected socket?
Answers:
• send
• sendto
• sendmsg
• write

2. Which of the following methods can be used as a communication mechanism between two unrelated processes?
Answers:
• A pipe using the pipe system call.
• A named pipe using the mknod system call.
• Named sockets.
• Signals.
3. Which of the following are true of Unix system calls?
Answers:
• System calls are executed in "User" context.
• The routine "malloc" which is used for allocating memory is a system call.
• A new file can be created using the "open" system call.
• If two processes are executing the "write" system call simultaneously, they are serialized by the operating system.
• The "read" system call will never be blocked.
4. Which of the following Linux commands can be used to identify the processes consuming maximum resources (CPU, Memory)?
Answers:
• ps
• top
• lsof
• vmstat
5. Which of the following signals are used by the Unix shell to implement job control?
Answers:
• SIGHUP
• SIGSTOP
• SIGCONT
• SIGINT
6. Which of the following environment variables specifies the shared library search path?
Answers:
• SHARED_LIBRARIES
• SHLIB_PATH
• LD_LIBRARY_PATH
• LIBRARIES
7. Which of the following statements are true?
Answers:
• "wc -l" can be used to count the number of lines in the input.
• "find . -name '*.txt' -exec rm {} \;" removes all ".txt" files in the current directory hierarchy.
• "cc -x " can be used to generate the assembler listing of the C program file.
• "set -x" can be used within a ksh shell script to generate listing of shell commands while they are being executed.
8. Which of the following utilities would you use on a standard Linux system to debug a running application?
Answers:
• gdb.
• ltrace.
• strace.
• ptrace.
9. Which of the following can be used to inspect the system call arguments of a Linux process?
Answers:
• strace
• gdb
• adb
• mdb
10. Which of the following methods can be used to allocate and use memory on a Unix system?
Answers:
• brk
• sbrk
• malloc
• calloc
11. Which of the following utilities is used to generate a core file of a process on Linux?
Answers:
• gdb
• strace
• gcore
• objdump
12. Which of the following can be used to debug the process "123" and program "test" on a Linux system?
Answers:
• adb test 123
• gdb test 123
• strace 123
• strace -f -p 123
13. If a process has locked a System V Semaphore and receives a SIGKILL signal, which of the following is true?
Answers:
• The process can catch the signal and drop the semaphore before terminating.
• The process terminates without releasing the semaphore.
• The semaphore is released if the process had specified SEM_UNDO during creation.
• The signal is deferred until the semaphore is released.
14. Which of the following utilities is used to search out regular expressions in the input?
Answers:
• cat
• grep
• head
• tail
15. What does the command "mknod temp p" do?
Answers:
• It creates a named pipe.
• It creates directory nodes "temp" and "p".
• It creates pipes "temp" and "p"
16. Threads created via pthread_create need to first set up shared memory
using shmop before they can share data.
Answers:
• True
• False
17. What does the "open" system call return to the caller?
Answers:
• 0 on success and -1 on error.
• File descriptor.
• An integer greater than or equal to 0 on success and -1 on error.
• Always 0.
18. What is the effect of a process executing an unlink system call while another process has opened the same file?
Answers:
• The unlink system call will fail.
• The unlink system call will succeed and the other process will be terminated.
• The unlink system call will be blocked until the other process has closed all references to the file.
• The unlink system call will succeed.
19. Which of the following signals cannot be ignored by a process?
Answers:
• SIGHUP
• SIGINT
• SIGTERM
• SIGKILL
20. Ignoring the setup cost for each of the System V IPC mechanisms, which of the following is the most efficient?
Answers:
• System V, Messages.
• System V, Shared Memory
• System V, Semaphores
• Sockets
21. What command is used to list the shared libraries used by an executable?
Answers:
• ldconfig
• ld
• ldd
• ls
22. What does the following command do to the process with pid 12345?
"kill -9 12345".
Answers:
• It sends the INT signal causing the process to be interrupted.
• It sends the STOP signal causing the process to be stopped.
• It sends the KILL signal causing the process to be killed.
• It sends the HUP singal causing the process to hangup.
23. Which of the following system calls is the most memory efficient method of reading a file?
Answers:
• readv
• read
• mmap
• fcntl
24. Which of the following commands generates a listing of the system calls being executed by a program on Solaris?
Answers:
• ltrace
• tusc
• strace
• truss
25. What is the effect of issuing a "$c" command at the adb prompt during a debugging session on a Solaris 9 system?
Answers:
• It generates a listing of the stack trace.
• It causes the debugger to continue.
• It drops to the shell.
• It prints the register contents.
26. Which of the following sequences prints all the second column fields of an input file "values.txt"?
Answers:
• awk "print $2" values.txt
• awk '{print $2}' values.txt
• awk '{print #2}' values.txt
• cut -2 values.txt
27. Which of the following system calls increases the process priority?
Answers:
• priority
• nice
• ulimit
• fcntl
28. Which of the following is true of Unix system calls?
Answers:
• System calls cannot be executed by regular users.
• System calls are executed in the user context.
• System calls are executed in the kernel context.
• System calls cause a process switch.
29. Which of the following gdb commands can be used to obtain the stack
trace of all the threads of a multi threaded program running on Linux?
Answers:
• bt
• ::stack
• $C
• thread apply all bt
30. If a process is hung in the kernel context, sending it a SIGKILL will _____.
Answers:
• kill the process immediately.
• be ignored by the Operating System.
• be delivered when the process switches back to the user context.
31. The library routine printf does not use any system calls.
Answers:
• True.
• False.
32. Which of the following gcc compiler options turns on optimization?
Answers:
• optimize
• O
• Opt
• -S
33. Which of the following options of the compiler is turned on to generate additional debug information (like the source code) for debugging an application?
Answers:
• O
• S
• E
• g
34. Which of the following options specifies a non standard library path during linking?
Answers:
• -l
• -L
• -o
• -g
35. Which of the following shell operators redirects the standard input of the command being executed?
Answers:
• <
• >
• %
• @
36. Which library routine is used to translate the numeric system call error code to a human readable text error message?
Answers:
• sprintf
• exit
• error
• perror
37. Which of the following IPC message operations is performed to setup communication between arbitrary processes?
Answers:
• msgctl
• msgsnd
• msgrcv
• msgget
38. What is the effect of executing the following system call on the file "test.txt"?
open("test.txt", O_TRUNC)
Answers:
• The file is truncated to the nearest block size before returning.
• The file is created before returning.
• The file is opened.
• If test.txt exists, the file is truncated to 0 bytes before returning.
39. How does a programmer distinguish a child from its parent process following a fork system call?
Answers:
• The system call returns 0 to the child and 1 to the parent.
• The system call returns 0 to the parent and the pid of the parent to the child.
• The system call returns 0 to the child and the pid of the child to the parent.
• There is no way to distinguish a child from its parent.
40. Which of the following libraries provides the POSIX thread implementation on Solaris?
Answers:
• libpthread
• libthread
• libnptl
• libc
41. Which of the following IPC shared memory sequences is correct?
Answers:
• shmctl, shmat, shmdt
• shmget, shmat, shmdt
• shmctl, shmget, shmat, shmdt
• shmat, shmdt
42. How is the value of the shell environment variable IFS changed to comma (',')?
Answers:
• IFS=','; export IFS
• $IFS=','; export IFS
• IFS=','; export $IFS
• $IFS=','
43. Which of the compiler options generates an assembler output file?
Answers:
• -O
• -a
• -S
• -g
44. What does the '-pg' option of the Unix compiler do?
Answers:
• It turns on the profiling of the executable code.
• It generates an assembler listing of the code.
• It turns on the generation of the optimized code.
• It prints the different function call graphs.
45. Shared libraries increase an application's disk size?
Answers:
• True.
• False.
46. Which of the following redirects the standard error output of a command to the log file "error.log"?
Answers:
• "2>error.log"
• "2
• ">error.log"
• "|error.log"
47. What are the typical system calls the Unix shell invokes when it
has to execute a new command?
Answers:
• open, read, close.
• open, fork, exec.
• ioctl.
48. Which system call is used to send a signal to another process?
Answers:
• signal
• kill
• socket
• ioctl
49. Which of the following shell commands is useful in single stepping through a shell script?
Answers:
• set -x
• echo
• trap
• DEBUG
50. Which of the following commands can be used to generate a listing of all the shared libraries that an executable needs?
Answers:
• ld
• ldd
• ls
• ln
51. What is the default file descriptor used for the error outputs of a process?
Answers:
• 0
• 1
• 2
• -1
52. Which of the following commands can be used on a Linux system to kill process 8977 and all its children?
Answers:
• kill -term 8977
• kill -kill 8977
• kill -stop 8977
• kill -int 8977
53. Which of the following commands can be used on a Linux system to configure a network interface (card)?
Answers:
• ifconfig
• ipconfig
• netstat -c
• route
54. Which of the following commands can be used to list all the active TCP connections only on a Linux system?
Answers:
• netstat -r
• netstat -t
• iptables -L
• route
55. Which of the following ksh trap sequences causes the function 'handler' to be executed when the script exits?
Answers:
• trap handler EXIT
• trap EXIT handler
• set handler EXIT
• trap handler exit
56. How many bytes of a file of size 1023 will be read by the following piece of code?

  char buf[256];

  <snip>
  while (read(fd, buf, 256)) {
           /* Take some action */
  }
  <snip>
Answers:
• 1024
• 1023
• 0
• 768
57. What is the effect of setting the "sticky" bit on an application's executable image?
Answers:
• It causes the system to load the program faster the next time it runs.
• It causes the system to fail all unlink system call requests on the image.
• It causes the system to preload the application's image into the system RAM.
• It causes the system to grant the application owner's privileges to other users if they try to run the application.
58. A C program "domath.c" utilizes the math library. Which of
the following commands correctly creates the corresponding executable
"domath"?
Answers:
• cc -o domath domath.c
• cc -o domath domath.c -L /usr/lib -lmath
• cc -o domath domath.c -lm
• cc -o domath domath.c -Lmath
59. Which of the following sequences creates a socket based connection for communication?
Answers:
• open, listen, accept
• open, accept, listen
• socket, connect, accept, listen
• socket, connect, listen, accept
60. What does the open system call return upon success?
Answers:
• A non zero value, which is the file descriptor.
• Zero.
• A positive integer which is the file descriptor.
• The pointer to the FILE structure of the open file.
61. If a process executes the following C code on a Linux system, what is the outcome?

<snip>
        char        *cp = 0, c = *cp;
<snip>
Answers:
• The process executes the code without errors.
• The process is killed with a SIGSEGV.
• The process is killed with a SIGBUS.
• The process is killed with a SIGKILL.
62. On Linux, the pthread_create interface does not use the fork system call to create threads.
Answers:
• True.
• False.
63. Which of the following shell parameters contains the return value of the previously executed shell command?
Answers:
• $*
• $$
• $?
• $!
64. Which of the following calls is used to initiate a socket connection to a target address?
Answers:
• socket
• connect
• accept
• listen
65. Which of the following gcc options can be used to generate a position independent code on a Linux system?
Answers:
• -pic
• +z
• -b
• -mshared
66. Which of the following commands can be used to list all the active TCP connections on a Linux system?
Answers:
• netstat -r
• netstat -t
• iptables -L
• route
67. What is the network byte order in Unix?
Answers:
• Little Endian
• Big Endian
• It is negotiated during connection.
• It is undefined.
68. Which of the following segments within the process address space are unique to each thread?
Answers:
• code.
• data.
• stack.
• bss.
69. How do threads created using pthread library share data between themselves efficiently?
Answers:
• They use one of the standard interprocess communication methods.
• They use sockets.
• They don't need any special mechanism as they share the data segment.
• They use shared memory.
70. By convention, which of the following signals causes a daemon to reload its configuration?
Answers:
• SIGHUP
• SIGKILL
• SIGINT
• SIGCONT
71. Which of the following block sizes results in the best read/write performance for an IO intensive application?
Answers:
• 8192
• 4096
• 2048
• 1024
72. What is the name of the standard linker on Unix?
Answers:
• cc
• ldd
• ld
• ls
73. Which of the following is employed by the operating system to speed up file IO on a Solaris system.
Answers:
• Inode Cache
• DNLC
• Buffer Cache
• Page Cache
74. How is the stack trace of all the threads in a multi threaded Linux application obtained?
Answers:
• strace -f -p <procid>
• "backtrace" at the gdb prompt.
• "thread apply all ::stack" at the gdb prompt.
• "thread apply all backtrace" at the gdb prompt.
75. Which of the following creates an IPC message channel?
Answers:
• id = msgget(key, 0700|IPC_CREAT);
• id = msgget(key, 0700, IPC_CREAT);
• id = msgctl(key, 0700|IPC_CREAT);
• id = msgctl(key, IPC_CREAT, 0700);
76. Which of the following system calls can be used to get the metadata of a file?
Answers:
• open
• stat
• fcntl
• ioctl
77. Which of the following commands can be used to create a static (archive) library?
Answers:
• tar
• ar
• ld
• gcc
78. Which of the following system calls is specific to debugging?
Answers:
• truss
• fcntl
• strace
• ptrace
79. Which of the following commands can be used to compile a C file called "test.c" into an executable called "test"?
Answers:
• cc -o test test.c
• cc -g -S test.c
• cc test test.c
• cc -E test.c
80. Which of the following IO mechanisms allows greater performance to concurrent IO-intensive applications?
Answers:
• Memory Mapped IO
• Read Ahead
• Direct IO (Filesystem locking is skipped)
• Async IO.
81. What is the outcome of attempting an ioctl system call on a block device file?
Answers:
• The system returns ENOTTY.
• The ioctl succeeds and returns 0.
• The system returns EIO.
• The system returns ENXIO.
82. Which of the following system calls can be used to create device special files?
Answers:
• open
• mkfs
• touch
• mknod
83. If a process is terminated due to a SEGFAULT on a Solaris 9 system, what is the name of the core file that is created?
Answers:
• core
• corefile
• memdump
• coredump
84. Which of the following socket system calls creates a Unix Domain Socket connection?
Answers:
• socket(PF_UNIX, SOCK_STREAM, protocol)
• socket(PF_INET, SOCK_DGRAM, protocol)
• socket(PF_IPX, SOCK_RAW, protocol)
• socket(PF_LOCAL, SOCK_STREAM, protocol)
85. Which of the following system calls creates a named socket?
Answers:
• creat
• mknod
• bind
• socket
86. Which of the following shell operators is used to send the standard output of the first command to the standard input of the second command?
Answers:
• &
• ^
• >
• |
87. Which of the following C headers needs to be included for socket programming?
Answers:
• <socket.h>
• <sys/socket.h>
• <stdio.h>
• <stdlib.h>
88. Where are the DNS and search domains specified?
Answers:
• /etc/fstab
• /etc/nsswitch.conf
• /etc/resolv.conf
• /etc/hosts-
89. A process opens a file and forgets to close the file descriptor when it
exits. What is the result?
Answers:
• It results in a resource leak.
• The OS calls exit on behalf of the process before it terminates the process resulting in all the resources being reclaimed.
• The OS garbage collector recovers the descriptor.
90. If a write system call fails and if errno is set to EFAULT, what does it signify?
Answers:
• The system encountered an IO error while doing the write.
• The file descriptor was illegal.
• The write buffer is not legal.
• The file was removed by another process while this write was being attempted.
91. Which of the following commands can be used to install the native software package SOFTpkg on a Solaris system?
Answers:
• tar -xvf SOFTpkg
• swinstall -s `pwd` SOFTpkg
• rpm -i SOFTpkg
• pkgadd -d . SOFTpkg

92. How do two threads synchronize access to shared data in a multi threaded application?
Answers:
• mutex_enter
• pthread_rwlock
• pthread_key_create
• pthread_mutex_lock
93. Which of the following system calls can be used to change process scheduling priority?
Answers:
• priority
• nice
• ulimit
• fcntl
94. Which of the following compiler options links the standard math library to the executable?
Answers:
• -link -mathlib
• -linkmath
• -L math
• -lm