Question
Standard C library functions will always invoke a system
call when executed from a single-threaded process in a UNIX/Linux operating system?Solution
exit C library functions - Terminates the process normally, performing the regular cleanup for terminating programs. malloc - This is a function defined in standard C library and it does not always invoke the system call. When a process is created, certain amount of heap memory is already allocated to it, when required to expand or shrink that memory, it internally uses sbrk/brk system call on Unix/Linux. sleep - This is not even standard C library function, it is a POSIX standard c library function which always invokes the system call.
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╛рдХреНрдп рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдЕрд╡реНрдпрдп рдХрд╛ рднреЗрдж рдмрддрд╛рдЗрдПтАФ
рдпрджрд┐...
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╢рдмреНрдж тАУ рдпреБрдЧреНрдореЛрдВ рдореЗрдВ рд╕реЗ рдЕрд░реНрде рдХреА рджреГрд╖реНрдЯрд┐ рд╕реЗ рдмреЗрдореЗрд▓ рдпя┐╜...
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдХрд┐рд╕ рд▓реЛрдХреЛрдХреНрддрд┐ рдХрд╛ рдЕрд░реНрде тАЬрдЕрдкрдиреЛрдВ рдХреЛ рдлрд╛рдпрджрд╛ рдкрд╣я┐╜...
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдХреМрди рд╕рд╛ рд╢рдмреНрдж рд╕реНрддреНрд░реАрд▓рд┐рдВрдЧ рд╣реИ?
рдЗрдирдореЗрдВ рд╕реЗ рдХреМрди-рд╕рд╛ рд╢рдмреНрдж 'рдЕрд░реБрдг' рдХрд╛ рд╕рдорд╛рдирд╛рд░реНрдереА рдирд╣реАрдВ рд╣реИ?
тАЬрдЬрд┐рд▓рд╛рдзрд┐рдХрд╛рд░реА рдиреЗ рд╕рдмрдХреЛ рдЙрдкрд╕реНрдерд┐рдд рд░рд╣рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджрд┐рдпрд╛ рд╣реИтАЭ рдореЗрдВ я┐╜...
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рд╕реНрдЯреЙрдХ рдореВрд▓реНрдпрди┬а рдХрд╛ рдкрд░реНрдпрд╛рдп рд╣реЛрдЧрд╛ ?
'рдЖрдЬреАрд╡рди' рд╢рдмреНрдж рдХрд┐рд╕ рд╕рдорд╛рд╕ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ ?
┬а' рдЬрд┐рд╕реЗ рдЬреАрддрд╛ рди рдЬрд╛ рд╕рдХреЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╢рдмреНрдж рд╣реИ __________
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рд╢реБрджреНрдз рд╡рд╛рдХреНрдп рдХрд╛ рдЪрдпрди рдХреАрдЬрд┐рдП: