Системные функции и процессы
Описывает границу и время жизни процесса родительских интерфейсов API и OS.
Wave Foundation
Документация по функциям
Прочтите fs и io, чтобы обработать файл, TCP, чтобы создать ссылку, и resolver, чтобы найти адрес. Ниже приведены процесс и правила доступа нижнего уровня OS.
Основы процесса API
std::process::core
proc_exit(code: i32) -> !
proc_getpid() -> i64
proc_getppid() -> i64
proc_execve(path: str, argv: ptr<ptr<i8>>, envp: ptr<ptr<i8>>) -> i64
proc_waitpid_raw(pid: i64, status: ptr<i32>, options: i32) -> i64
proc_exit не возвращается к точке вызова. Перед выключением выполните всю необходимую очистку файлов/памяти. proc_execve отличается от типичной дочерней функции создания, поскольку в случае успеха она заменяет существующий образ процесса. raw argv/envp должны быть подготовлены к завершению NUL каждой строки с указателем null, указывающим конец.
Функция spawn в std::process::spawn обрабатывает результат создания, а функция await обрабатывает статус завершения дочернего элемента. Успешное создание и успешное завершение программы — это две разные вещи. Когда вы создаете канал, родительский и дочерний элементы должны закрыть неиспользуемый конец, чтобы передать EOF. Если вы ждете выхода дочернего процесса, не читая канал захвата, буфер может заполниться и ждать друг друга.
Портативность и низкоуровневый подход
fork/exec, дескриптор файла, и Windows дескриптор — это не одна и та же функция OS. Проверьте поддержку выбранной цели и рассматривайте unsupported как обычный путь отказа. std::sys — это интерфейс, специфичный для OS, и он не использует повторно свои числовые флаги и макет из других OS.
При прямом связывании с внешней библиотекой C прочтите FFI. Нет необходимости произвольно объявлять функцию libc, чтобы использовать родительскую std API. Сначала проверьте Целевая и ссылочная среда.