ВОРОТА | ВОРОТА КС 2021 | Набор 1 | Вопрос 24

Опубликовано: 7 Октября, 2022

Какая из следующих стандартных функций библиотеки 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.

Викторина этого вопроса

РЕКОМЕНДУЕМЫЕ СТАТЬИ