ВОРОТА | ВОРОТА КС 2021 | Набор 1 | Вопрос 24
Какая из следующих стандартных функций библиотеки C всегда будет вызывать системный вызов при выполнении из однопоточного процесса в операционной системе UNIX/Linux?
(А) выход
(Б) маллок
(С) спать
(D) стрлен
Ответ: (А) (С)
Объяснение:
- (А). выход из библиотечных функций C —
Завершает процесс в обычном режиме, выполняя обычную очистку для завершения программ. - (Б). маллок –
Это функция, определенная в стандартной библиотеке C, и она не всегда вызывает системный вызов. Когда процесс создан, ему уже выделено определенное количество памяти в куче, когда требуется увеличить или уменьшить эту память, он внутренне использует системный вызов sbrk/brk в Unix/Linux. - (С). спать -
Это даже не стандартная библиотечная функция C, это стандартная библиотечная функция POSIX, которая всегда вызывает системный вызов. - (Д). стрлен –
Эта функция определена в стандартной библиотеке C и не требует никакого системного вызова для выполнения своей функции вычисления длины строки.
Альтернативный путь –
lib fun поддерживаются компилятором, в то время как системный вызов поддерживается ОС.
Ниже показаны различные эквивалентные системные вызовы для операционной системы UNIX:
1. Управление технологическим процессом –
fork(), exit(), wait()
2. Управление файлами –
open(), read(), write(), close()
3. Управление устройствами –
ioctl(), read(), write()
4. Информационное обслуживание –
getpid(), alarm(), sleep(),
5. Коммуникация –
pipe(), shm_open(), mmap()
6. Защита –
chmod(), umask(), chown()
Следовательно, exit() является системным вызовом Process Control, а sleep() системным вызовом информационного обслуживания в операционной системе UNIX.
Викторина этого вопроса