Глава 30 Библиотека unix: Системные вызовы Unix
Библиотека unix предоставляет доступ к многим системным вызовам Unix и системным функциям библиотеки для программ OCaml. В этой главе кратко описаны предоставляемые функции. Подробную информацию о поведении этих функций см. в разделах 2 и 3 руководства Unix.
- Модуль Unix: Системные вызовы Unix
- Модуль UnixLabels: Системные вызовы Unix с метками
Не все функции доступны во всех вариантах Unix. Если некоторые функции недоступны, при их вызове будет возбуждено исключение Invalid_arg.
Программы, использующие библиотеку unix, должны быть связаны следующим образом:
ocamlc other options -I +unix unix.cma other files
ocamlopt other options -I +unix unix.cmxa other files
Для интерактивного использования библиотеки unix, выполните:
ocamlmktop -o mytop -I +unix unix.cma
./mytop
или (если динамическая компоновка C-библиотек поддерживается на вашей платформе), запустите ocaml и введите
# #directory "+unix";;
# #load "unix.cma";;
Windows: Порт Cygwin для OCaml полностью реализует все функции из модуля Unix. Нативные порты Win32 реализуют подмножество функций. Ниже приведен список функций, которые не реализованы или частично реализованы портами Win32. Функции, не упомянутые в списке, полностью реализованы и ведут себя так, как описано ранее в этой главе.
| Функции | Комментарий |
| fork | не реализована, используйте create_process или потоки |
| wait | не реализована, используйте waitpid |
| waitpid | можно дождаться только процесса с заданным PID, а не любого дочернего процесса |
| getppid | не реализована (не имеет смысла в Windows) |
| nice | не реализована |
| truncate, ftruncate | реализована (с версии 4.10.0) |
| link | реализована (с версии 3.02) |
| fchmod | не реализована |
| chown, fchown | не реализована (не имеет смысла в файловой системе DOS) |
| umask | не реализована |
| access | Права доступа на выполнение X_OK не могут быть проверены, вместо этого проверяются только права на чтение. |
| chroot | не реализована |
| mkfifo | не реализована |
| symlink, readlink | реализована (с версии 4.03.0) |
| kill | частично реализована (с версии 4.00.0): реализован только сигнал sigkill |
| sigprocmask, sigpending, sigsuspend | не реализована (нет межпроцессных сигналов в Windows) |
| pause | не реализована (нет межпроцессных сигналов в Windows) |
| alarm | не реализована |
| times | частично реализована, не будет отображать временные данные для дочерних процессов |
| getitimer, setitimer | не реализована |
| getuid, geteuid, getgid, getegid | всегда возвращает 1 |
| setuid, setgid, setgroups, initgroups | не реализована |
| getgroups | всегда возвращает [|1|] (с версии 2.00) |
| getpwnam, getpwuid | всегда возбуждает исключение Not_found |
| getgrnam, getgrgid | всегда возбуждает исключение Not_found |
| тип socket_domain | PF_INET полностью поддерживается; PF_INET6 полностью поддерживается (с версии 4.01.0); PF_UNIX поддерживается с версии 4.14.0, но работает только в Windows 10 1803 и более поздних версиях. |
| establish_server | не реализована; используйте потоки |
| функции терминала (tc*) | не реализованы |
| setsid | не реализована |
© 1995-2022 INRIA.
https://v2.ocaml.org/releases/5.0/htmlman/libunix.html