Глава 28 Библиотека unix: Системные вызовы Unix
Библиотека unix предоставляет доступ к многим системным вызовам Unix и функциям связанной с системой библиотеки для программ OCaml. В этой главе кратко описываются предоставляемые функции. Для получения более подробной информации о поведении этих функций обратитесь к разделам 2 и 3 руководства по Unix.
- Модуль Unix: Системные вызовы Unix
- Модуль UnixLabels: Системные вызовы Unix с метками
Не все функции предоставляются всеми вариантами Unix. Если некоторые функции недоступны, при их вызове будет возбуждено исключение Invalid_arg.
Программы, использующие библиотеку unix, должны быть связаны следующим образом:
ocamlc other options unix.cma other files
ocamlopt other options unix.cmxa other files
Для интерактивного использования библиотеки unix выполните:
ocamlmktop -o mytop unix.cma
./mytop
или (если на вашей платформе поддерживается динамическая загрузка библиотек C), запустите ocaml и введите #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/4.14/htmlman/libunix.html