POSIX
СОДЕРЖАНИЕ
- НАЗВАНИЕ
- СИНТАКСИС
- ОПИСАНИЕ
- ЗАМЕЧАНИЯ
- ФУНКЦИИ
- КЛАССЫ
- КОНСТАНТЫ ИМЕНЬ ПУТЕЙ
- КОНСТАНТЫ POSIX
- КОНСТАНТЫ РЕСУРСОВ
- КОНФИГУРАЦИЯ СИСТЕМЫ
- ERRNO
- FCNTL
- FLOAT
- СРЕДА ПЛАВАЮЩЕЙ ТОЧКИ
- ПРЕДЕЛЫ
- ЛОКАЛЬ
- МАТЕМАТИКА
- СИГНАЛ
- STAT
- STDLIB
- STDIO
- ВРЕМЯ
- UNISTD
- WAIT
- WINSOCK
НАЗВАНИЕ
POSIX - Perl-интерфейс к IEEE Std 1003.1
СИНТАКСИС
use POSIX ();
use POSIX qw(setsid);
use POSIX qw(:errno_h :fcntl_h);
printf "EINTR is %d\n", EINTR;
$sess_id = POSIX::setsid();
$fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
# note: that's a filedescriptor, *NOT* a filehandle ОПИСАНИЕ
Модуль POSIX позволяет вам получить доступ ко всем (или почти всем) стандартным идентификаторам POSIX 1003.1. Многие из этих идентификаторов получили Perl-подобные интерфейсы.
Этот документ содержит свёрнутый список функций, доступных в модуле POSIX. Обратитесь к руководству вашей операционной системы для получения общей информации о большинстве функций. Обратитесь к perlfunc для функций, которые являются идентичными или почти идентичными встроенным функциям Perl.
В первом разделе описаны функции POSIX из спецификации 1003.1. Во втором разделе описаны некоторые классы для объектов сигналов, объектов TTY и других различных объектов. Остальные разделы перечисляют различные константы и макросы в структуре, которая примерно соответствует IEEE Std 1003.1b-1993.
Обозначение [C99] указывает функции, которые были добавлены в стандарт ISO/IEC 9899:1999 языка C. Некоторые из них могут быть недоступны на вашей системе, если она соответствует более раннему стандарту. Попытка использовать любую отсутствующую функцию приведет к сообщению об ошибке во время выполнения.
ЗАМЕЧАНИЯ
Все по умолчанию экспортируется (с несколькими исключениями). Это нежелательная функция обратной совместимости, и её использование настоятельно не рекомендуется. Вы должны либо предотвратить экспорт (сказав use POSIX ();, как обычно), а затем использовать полные имена (например, POSIX::SEEK_END), либо указать явный список импорта. Если вы не сделаете ни того, ни другого и выберете значение по умолчанию (как в use POSIX;), вы импортируете сотни и сотни символов в своё пространство имен.
Некоторые функции не реализованы, потому что они специфичны для языка C. Если вы попытаетесь вызвать эти функции, будет выведено сообщение, информирующее вас о том, что они не реализованы, и предложен аналог на Perl, если таковой существует. Например, попытка доступа к вызову setjmp() вызовет сообщение "setjmp() is C-specific: use eval {} instead".
Кроме того, некоторые поставщики могут утверждать соответствие стандарту 1003.1, но на самом деле не соответствуют ему: они не пройдут PCTS (тесты соответствия POSIX). Например, поставщик может не определять EDEADLK, или семантика значений errno, установленных функцией open(2), может быть не совсем правильной. Perl не пытается проверить соответствие POSIX. Это означает, что вы можете успешно написать "use POSIX", а затем в вашей программе обнаружите, что ваш поставщик был недостаточно внимателен, и макрос ICANON всё же не существует. Это можно рассматривать как ошибку.
ФУНКЦИИ
-
_exit -
Это идентично функции C
_exit(). Она немедленно завершает программу, что означает, среди прочего, что буферизованный ввод-вывод не сбрасывается.Обратите внимание, что при использовании потоков и в Linux это не лучший способ завершения потока, потому что в Linux процессы и потоки чем-то похожи (Примечание: хотя это так в начале 2003 года, в Linux ведутся проекты по обеспечению потокам более POSIX-совместимых семантик). Если вы не хотите возвращаться из потока, отсоедините поток.
abort-
Это идентично функции C
abort(). Она завершает процесс с сигналомSIGABRT, если он не перехвачен обработчиком сигналов или если обработчик не возвращается нормально (например, он выполняетlongjmp). abs-
Это идентично встроенной функции Perl
abs(), возвращающей абсолютное значение её числового аргумента (кроме того, чтоPOSIX::abs()должно быть предоставлено явное значение (вместо полагания на неявное$_):$absolute_value = POSIX::abs(42); # good $absolute_value = POSIX::abs(); # throws exception access-
Определяет доступность файла.
if( POSIX::access( "/", &POSIX::R_OK ) ){ print "have read permission\n"; }Возвращает
undefпри ошибке. Обратите внимание: не используйтеaccess()для целей безопасности. Между вызовомaccess()и операцией, к которой вы готовитесь, разрешения могут измениться: классическая гонка условий. acos-
Это идентично функции C
acos(), возвращающей арккосинус её числового аргумента. См. также Math::Trig. acosh-
Это идентично функции C
acosh(), возвращающей гиперболический арккосинус её числового аргумента [C99]. См. также Math::Trig. Добавлено в Perl v5.22. alarm-
Это идентично встроенной функции Perl
alarm(), либо для включения, либо для отключения таймераSIGARLM, за исключением того, чтоPOSIX::alarm()должно быть предоставлено явное значение (вместо полагания на неявное$_):POSIX::alarm(3) # good POSIX::alarm() # throws exception asctime-
Это идентично функции C
asctime(). Она возвращает строку вида"Fri Jun 2 18:22:13 2000\n\0"и вызывается таким образом
$asctime = asctime($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst);Значение
$monнулевое: январь равен0. Значение$year1900-базовое: 2001 равен101.$wdayи$ydayпо умолчанию равны нулю (и обычно игнорируются), а$isdstпо умолчанию равен -1.Обратите внимание, что результат всегда на английском языке. Используйте
"strftime"вместо этого, чтобы получить результат, подходящий для текущей локали. Формат функции%cзадаёт предпочитаемое представление локали. asin-
Это идентично функции C
asin(), возвращающей арксинус её числового аргумента. См. также Math::Trig. asinh-
Это идентично функции C
asinh(), возвращающей гиперболический арксинус её числового аргумента [C99]. См. также Math::Trig. Добавлено в Perl v5.22. assert-
Не реализовано, но вы можете использовать "die" в perlfunc и модуль Carp для достижения похожих результатов.
atan-
Это идентично функции C
atan(), возвращающей арктангенс её числового аргумента. См. также Math::Trig. atanh-
Это идентично функции C
atanh(), возвращающей гиперболический арктангенс её числового аргумента [C99]. См. также Math::Trig. Добавлено в Perl v5.22. atan2-
Это идентично встроенной функции Perl
atan2(), возвращающей арктангенс, определённый её двумя числовыми аргументами, координатами y и x. См. также Math::Trig. atexit-
Не реализовано.
atexit()специфично для C: используйтеEND {}вместо этого, см. perlmod. atof-
Не реализовано.
atof()специфично для C. Perl прозрачно преобразует строки в числа. Если вам нужно принудительно преобразовать скаляр в число, добавьте к нему ноль. atoi-
Не реализовано.
atoi()специфично для C. Perl прозрачно преобразует строки в числа. Если вам нужно принудительно преобразовать скаляр в число, добавьте к нему ноль. Если вам нужно только целая часть, см. "int" в perlfunc. atol-
Не реализовано.
atol()специфично для C. Perl прозрачно преобразует строки в числа. Если вам нужно принудительно преобразовать скаляр в число, добавьте к нему ноль. Если вам нужно только целая часть, см. "int" в perlfunc. bsearch-
bsearch()не предоставлено. Для выполнения двоичного поиска в словарях см. Search::Dict. calloc-
Не реализовано.
calloc()специфично для C. Perl прозрачно управляет памятью. cbrt-
Кубический корень [C99]. Добавлено в Perl v5.22.
ceil-
Это идентично функции C
ceil(), возвращающей наименьшее целое значение, большее или равное заданному числовому аргументу. chdir-
Это идентично встроенной функции Perl
chdir(), позволяющей изменить рабочий (по умолчанию) каталог - см. "chdir" в perlfunc - за исключением того, чтоPOSIX::chdir()должно быть предоставлено явное значение (вместо полагания на неявное$_):$rv = POSIX::chdir('path/to/dir'); # good $rv = POSIX::chdir(); # throws exception chmod-
Это идентично встроенной функции Perl
chmod(), позволяющей изменить разрешения файлов и каталогов - см. "chmod" в perlfunc - за исключением того, чтоPOSIX::chmod()может изменить только один файл за раз (вместо списка файлов):$c = chmod 0664, $file1, $file2; # good $c = POSIX::chmod 0664, $file1; # throws exception $c = POSIX::chmod 0664, $file1, $file2; # throws exceptionКак и в случае со встроенной функцией
chmod(),$fileможет быть именем файла или дескриптором файла. chown-
Это идентично встроенной функции Perl
chown(), позволяющей изменить владельцев и группы файлов и каталогов, см. "chown" в perlfunc. clearerr-
Не реализовано. Используйте метод
IO::Handle::clearerr()вместо этого, чтобы сбросить состояние ошибки (если оно есть) и состояние EOF (если оно есть) данного потока. clock-
Это идентично функции C
clock(), возвращающей количество потраченного процессорного времени в микросекундах. close-
Закрыть файл. Это использует дескрипторы файлов, такие как те, которые получены при вызове
POSIX::open.$fd = POSIX::open( "foo", &POSIX::O_RDONLY ); POSIX::close( $fd );Возвращает
undefпри ошибке.См. также "close" в perlfunc.
closedir-
Это идентично встроенной функции Perl
closedir()для закрытия дескриптора каталога, см. "closedir" в perlfunc. cos-
Это идентично встроенной функции Perl
cos(), для возвращения косинуса её числового аргумента, см. "cos" в perlfunc. См. также Math::Trig. cosh-
Это идентично функции C
cosh(), для возвращения гиперболического косинуса её числового аргумента. См. также Math::Trig. copysign-
Возвращает
x, но со знакомy[C99]. Добавлено в Perl v5.22.$x_with_sign_of_y = POSIX::copysign($x, $y);См. также "signbit".
creat-
Создать новый файл. Это возвращает дескриптор файла, как и те, что возвращаются
POSIX::open. ИспользуйтеPOSIX::closeдля закрытия файла.$fd = POSIX::creat( "foo", 0611 ); POSIX::close( $fd );См. также "sysopen" в perlfunc и его флаг
O_CREAT. ctermid-
Генерирует имя пути к управляющему терминалу.
$path = POSIX::ctermid(); ctime-
Это идентично функции C
ctime()и эквивалентноasctime(localtime(...)), см. "asctime" и "localtime". -
cuserid[POSIX.1-1988] -
Получить имя пользователя владельца текущего процесса.
$name = POSIX::cuserid();Примечание: эта функция не была специфицирована POSIX с 1990 года и включена только для обратной совместимости. Новый код должен использовать
getlogin()вместо этого. difftime-
Это идентично функции C
difftime(), для возвращения разницы во времени (в секундах) между двумя моментами (как возвращаетtime()), см. "time". div-
Не реализовано.
div()специфично для C, используйте "int" в perlfunc для обычного/деления и остатка%. dup-
Это похоже на функцию C
dup(), для дублирования дескриптора файла.Это использует дескрипторы файлов, такие как те, которые получены при вызове
POSIX::open.Возвращает
undefпри ошибке. dup2-
Это похоже на функцию C
dup2(), для дублирования дескриптора файла в другой известный дескриптор файла.Это использует дескрипторы файлов, такие как те, которые получены при вызове
POSIX::open.Возвращает
undefпри ошибке. erf-
Функция ошибки [C99]. Добавлено в Perl v5.22.
erfc
-
Дополнительная функция ошибок [C99]. Добавлена в Perl v5.22.
errno-
Возвращает значение errno.
$errno = POSIX::errno();Это идентично числовым значениям
$!, см. "$ERRNO" в perlvar. execl-
Не реализовано.
execl()— специфично для C, см. "exec" в perlfunc. execle-
Не реализовано.
execle()— специфично для C, см. "exec" в perlfunc. execlp-
Не реализовано.
execlp()— специфично для C, см. "exec" в perlfunc. execv-
Не реализовано.
execv()— специфично для C, см. "exec" в perlfunc. execve-
Не реализовано.
execve()— специфично для C, см. "exec" в perlfunc. execvp-
Не реализовано.
execvp()— специфично для C, см. "exec" в perlfunc. exit-
Это идентично встроенной в Perl функции
exit()для выхода из программы, см. "exit" в perlfunc. exp-
Это идентично встроенной в Perl функции
exp()для возвращения показателя степени (по основанию e) числового аргумента, см. "exp" в perlfunc. expm1-
Эквивалентно
exp(x) - 1, но точнее для малых значений аргумента [C99]. Добавлена в Perl v5.22.См. также "log1p".
fabs-
Это идентично встроенной в Perl функции
abs()для возвращения абсолютного значения числового аргумента, см. "abs" в perlfunc. fclose-
Не реализовано. Используйте метод
IO::Handle::close()вместо этого, или см. "close" в perlfunc. fcntl-
Это идентично встроенной в Perl функции
fcntl(), см. "fcntl" в perlfunc. fdopen-
Не реализовано. Используйте метод
IO::Handle::new_from_fd()вместо этого, или см. "open" в perlfunc. feof-
Не реализовано. Используйте метод
IO::Handle::eof()вместо этого, или см. "eof" в perlfunc. ferror-
Не реализовано. Используйте метод
IO::Handle::error()вместо этого. fflush-
Не реализовано. Используйте метод
IO::Handle::flush()вместо этого. См. также"$OUTPUT_AUTOFLUSH" in perlvar. fgetc-
Не реализовано. Используйте метод
IO::Handle::getc()вместо этого, или см. "read" в perlfunc. fgetpos-
Не реализовано. Используйте метод
IO::Seekable::getpos()вместо этого, или см. "seek" в perlfunc. fgets-
Не реализовано. Используйте метод
IO::Handle::gets()вместо этого. Аналогично <>, также известный как "readline" в perlfunc. fileno-
Не реализовано. Используйте метод
IO::Handle::fileno()вместо этого, или см. "fileno" в perlfunc. floor-
Это идентично функции C
floor(), возвращающей наибольшее целое значение, меньшее или равное числовому аргументу. fdim-
"Положительная разность",
x - yеслиx > y, ноль в противном случае [C99]. Добавлена в Perl v5.22. fegetround-
Возвращает текущий режим округления чисел с плавающей точкой, один из
FE_TONEAREST FE_TOWARDZERO FE_UPWARD FE_DOWNWARDFE_TONEARESTподобен "round",FE_TOWARDZEROподобен "trunc" [C99]. Добавлена в Perl v5.22. fesetround-
Устанавливает режим округления чисел с плавающей точкой, см. "fegetround" [C99]. Добавлена в Perl v5.22.
fma-
"Объединённое умножение-сложение",
x * y + z, возможно, быстрее (и менее потерпевающее потерь) чем явное выполнение двух операций [C99]. Добавлена в Perl v5.22.my $fused = POSIX::fma($x, $y, $z); fmax-
Максимум из
xиy, за исключением случаев, когда один из нихNaN, возвращает другой [C99]. Добавлена в Perl v5.22.my $min = POSIX::fmax($x, $y); fmin-
Минимум из
xиy, за исключением случаев, когда один из нихNaN, возвращает другой [C99]. Добавлена в Perl v5.22.my $min = POSIX::fmin($x, $y); fmod-
Это идентично функции C
fmod().$r = fmod($x, $y);Возвращает остаток
$r = $x - $n*$y, где$n = trunc($x/$y). Остаток имеет тот же знак, что и$x, и величину (абсолютное значение) меньше величины$y. fopen-
Не реализовано. Используйте метод
IO::File::open()вместо этого, или см. "open" в perlfunc. fork-
Это идентично встроенной в Perl функции
fork()для дублирования текущего процесса, см. "fork" в perlfunc и perlfork, если вы работаете в Windows. fpathconf-
Возвращает значение конфигурируемого ограничения файла или каталога. Используются дескрипторы файлов, такие как полученные при вызове
POSIX::open.Следующее определит максимальную длину самого длинного допустимого пути в файловой системе, которая содержит /var/foo.
$fd = POSIX::open( "/var/foo", &POSIX::O_RDONLY ); $path_max = POSIX::fpathconf($fd, &POSIX::_PC_PATH_MAX);Возвращает
undefпри ошибке. fpclassify-
Возвращает одно из
FP_NORMAL FP_ZERO FP_SUBNORMAL FP_INFINITE FP_NANуказывающее на класс аргумента [C99].
FP_INFINITE— положительная или отрицательная бесконечность,FP_NAN— не число.FP_SUBNORMALозначает субнормальные числа (также известные как денормали), очень маленькие числа с низкой точностью.FP_ZERO— ноль.FP_NORMAL— всё остальное. Добавлена в Perl v5.22. fprintf-
Не реализовано.
fprintf()— специфично для C, см. "printf" в perlfunc вместо этого. fputc-
Не реализовано.
fputc()— специфично для C, см. "print" в perlfunc вместо этого. fputs-
Не реализовано.
fputs()— специфично для C, см. "print" в perlfunc вместо этого. fread-
Не реализовано.
fread()— специфично для C, см. "read" в perlfunc вместо этого. free-
Не реализовано.
free()— специфично для C. Perl управляет памятью прозрачно. freopen-
Не реализовано.
freopen()— специфично для C, см. "open" в perlfunc вместо этого. frexp-
Возвращает мантиссу и показатель степени числа с плавающей точкой.
($mantissa, $exponent) = POSIX::frexp( 1.234e56 ); fscanf-
Не реализовано.
fscanf()— специфично для C, используйте <> и регулярные выражения вместо этого. fseek-
Не реализовано. Используйте метод
IO::Seekable::seek()вместо этого, или см. "seek" в perlfunc. fsetpos-
Не реализовано. Используйте метод
IO::Seekable::setpos()вместо этого, или см. "seek" в perlfunc. fstat-
Получить состояние файла. Используются дескрипторы файлов, такие как полученные при вызове
POSIX::open. Возвращаемые данные идентичны данным из встроенной в Perl функцииstat.$fd = POSIX::open( "foo", &POSIX::O_RDONLY ); @stats = POSIX::fstat( $fd ); fsync-
Не реализовано. Используйте метод
IO::Handle::sync()вместо этого. ftell-
Не реализовано. Используйте метод
IO::Seekable::tell()вместо этого, или см. "tell" в perlfunc. fwrite-
Не реализовано.
fwrite()— специфично для C, см. "print" в perlfunc вместо этого. getc-
Это идентично встроенной в Perl функции
getc(), см. "getc" в perlfunc. getchar-
Возвращает один символ из STDIN. Идентично Perl'овскому
getc(), см. "getc" в perlfunc. getcwd-
Возвращает имя текущего каталога. См. также Cwd.
getegid-
Возвращает эффективный идентификатор группы. Аналогично встроенной переменной Perl
$(, см. "$EGID" в perlvar. getenv-
Возвращает значение указанной переменной среды. Та же информация доступна через массив
%ENV. geteuid-
Возвращает эффективный идентификатор пользователя. Идентично встроенной переменной Perl
$>, см. "$EUID" в perlvar. getgid-
Возвращает реальный идентификатор группы пользователя. Аналогично встроенной переменной Perl
$), см. "$GID" в perlvar. getgrgid
-
Это идентично встроенной в Perl функции
getgrgid()для возвращения записей групп по идентификаторам групп, см. "getgrgid" в perlfunc. getgrnam-
Это идентично встроенной в Perl функции
getgrnam()для возвращения записей групп по именам групп, см. "getgrnam" в perlfunc. getgroups-
Возвращает идентификаторы дополнительных групп пользователя. Аналогично встроенной переменной Perl
$), см. "$GID" в perlvar. getlogin-
Это идентично встроенной в Perl функции
getlogin()для возвращения имени пользователя, связанного с текущим сеансом, см. "getlogin" в perlfunc. getpayload-
use POSIX ':nan_payload'; getpayload($var)Возвращает
NaNполезную нагрузку. Добавлено в Perl v5.24.Обратите внимание на предупреждение об API-нестабильности в "setpayload".
См. "nan" для получения дополнительной информации об
NaN. getpgrp-
Это идентично встроенной в Perl функции
getpgrp()для возвращения идентификатора группы процессов текущего процесса, см. "getpgrp" в perlfunc. getpid-
Возвращает идентификатор процесса. Идентично встроенной переменной Perl
$$, см. "$PID" в perlvar. getppid-
Это идентично встроенной в Perl функции
getppid()для возвращения идентификатора процесса родительского процесса текущего процесса, см. "getppid" в perlfunc. getpwnam-
Это идентично встроенной в Perl функции
getpwnam()для возвращения записей пользователей по именам пользователей, см. "getpwnam" в perlfunc. getpwuid-
Это идентично встроенной в Perl функции
getpwuid()для возвращения записей пользователей по идентификаторам пользователей, см. "getpwuid" в perlfunc. gets-
Возвращает одну строку из
STDIN, аналогично <>, также известная как функцияreadline(), см. "readline" в perlfunc.ПРИМЕЧАНИЕ: если у вас есть программы на C, которые все еще используют
gets(), будьте очень осторожны. Функцияgets()является источником бесконечных проблем, потому что в ней нет проверок переполнения буфера. Ее никогда не следует использовать. Вместо нее следует предпочесть функциюfgets(). getuid-
Возвращает идентификатор пользователя. Идентично встроенной переменной Perl
$<, см. "$UID" в perlvar. gmtime-
Это идентично встроенной в Perl функции
gmtime()для преобразования секунд с эпохи в дату в Гринвичском среднем времени, см. "gmtime" в perlfunc. hypot-
Эквивалентно
sqrt(x * x + y * y), но более стабильно при очень больших или очень малых аргументах [C99]. Добавлено в Perl v5.22. ilogb-
Целочисленный двоичный логарифм [C99]. Добавлено в Perl v5.22.
Например,
ilogb(20)равно 4, как целое число.См. также "logb".
Inf-
Бесконечность как константа:
use POSIX qw(Inf); my $pos_inf = +Inf; # Or just Inf. my $neg_inf = -Inf;См. также "isinf" и "fpclassify".
isalnum-
Эта функция удалена начиная с Perl v5.24. Она была очень похожа на сопоставление с
qr/ ^ [[:alnum:]]+ $ /x, которую следует использовать вместо нее. См. "POSIX Character Classes" в perlrecharclass. isalpha-
Эта функция удалена начиная с Perl v5.24. Она была очень похожа на сопоставление с
qr/ ^ [[:alpha:]]+ $ /x, которую следует использовать вместо нее. См. "POSIX Character Classes" в perlrecharclass. isatty-
Возвращает булево значение, указывающее, подключен ли указанный дескриптор файла к tty. Аналогично оператору
-t, см. "-X" в perlfunc. iscntrl-
Эта функция удалена начиная с Perl v5.24. Она была очень похожа на сопоставление с
qr/ ^ [[:cntrl:]]+ $ /x, которую следует использовать вместо нее. См. "POSIX Character Classes" в perlrecharclass. isdigit-
Эта функция удалена начиная с Perl v5.24. Она была очень похожа на сопоставление с
qr/ ^ [[:digit:]]+ $ /x, которую следует использовать вместо нее. См. "POSIX Character Classes" в perlrecharclass. isfinite-
Возвращает true, если аргумент является конечным числом (то есть не бесконечность и не число не является числом) [C99]. Добавлено в Perl v5.22.
См. также "isinf", "isnan" и "fpclassify".
isgraph-
Эта функция удалена начиная с Perl v5.24. Она была очень похожа на сопоставление с
qr/ ^ [[:graph:]]+ $ /x, которую следует использовать вместо нее. См. "POSIX Character Classes" в perlrecharclass. isgreater-
(Также
isgreaterequal,isless,islessequal,islessgreater,isunordered)Сравнения с плавающей точкой, которые обрабатывают
NaN[C99]. Добавлено в Perl v5.22. isinf-
Возвращает true, если аргумент является бесконечностью (положительной или отрицательной) [C99]. Добавлено в Perl v5.22.
См. также "Inf", "isnan", "isfinite" и "fpclassify".
islower-
Эта функция удалена начиная с Perl v5.24. Она была очень похожа на сопоставление с
qr/ ^ [[:lower:]]+ $ /x, которую следует использовать вместо нее. См. "POSIX Character Classes" в perlrecharclass. isnan-
Возвращает true, если аргумент является
NaN(числом, не являющимся числом) [C99]. Добавлено в Perl v5.22.Обратите внимание, что вы не можете проверить "
NaN-ность" с$x == $xтак как
NaNне эквивалентно ничему, включая себя.См. также "nan", "NaN", "isinf" и "fpclassify".
isnormal-
Возвращает true, если аргумент является нормальным (то есть не является субнормальным/денормализованным, не является бесконечностью и не является числом, не являющимся числом) [C99]. Добавлено в Perl v5.22.
См. также "isfinite" и "fpclassify".
isprint-
Эта функция удалена начиная с Perl v5.24. Она была очень похожа на сопоставление с
qr/ ^ [[:print:]]+ $ /x, которую следует использовать вместо нее. См. "POSIX Character Classes" в perlrecharclass. ispunct-
Эта функция удалена начиная с Perl v5.24. Она была очень похожа на сопоставление с
qr/ ^ [[:punct:]]+ $ /x, которую следует использовать вместо нее. См. "POSIX Character Classes" в perlrecharclass. issignaling-
use POSIX ':nan_payload'; issignaling($var, $payload)Возвращает true, если аргумент является сигнализирующим NaN. Добавлено в Perl v5.24.
Обратите внимание на предупреждение об API-нестабильности в "setpayload".
См. "nan" для получения дополнительной информации об
NaN. isspace-
Эта функция удалена начиная с Perl v5.24. Она была очень похожа на сопоставление с
qr/ ^ [[:space:]]+ $ /x, которую следует использовать вместо нее. См. "POSIX Character Classes" в perlrecharclass. isupper-
Эта функция удалена начиная с Perl v5.24. Она была очень похожа на сопоставление с
qr/ ^ [[:upper:]]+ $ /x, которую следует использовать вместо нее. См. "POSIX Character Classes" в perlrecharclass. isxdigit-
Эта функция удалена начиная с Perl v5.24. Она была очень похожа на сопоставление с
qr/ ^ [[:xdigit:]]+ $ /x, которую следует использовать вместо нее. См. "POSIX Character Classes" в perlrecharclass. j0j1jny0y1yn-
Функция Бесселя первого рода нулевого порядка.
kill-
Это идентично встроенной в Perl функции
kill()для отправки сигналов процессам (часто для их завершения), см. "kill" в perlfunc. labs-
Не реализовано. (Для возвращения абсолютных значений целых чисел типа long.)
labs()— это специфично для C, см. "abs" в perlfunc вместо этого. lchown-
Это идентично функции C, за исключением порядка аргументов, который согласуется со встроенной функцией Perl
chown()с добавлением ограничения на один путь, а не список путей. Выполняет ту же операцию, что и функцияchown(), но изменяет владельца символической ссылки вместо файла, на который она указывает.POSIX::lchown($uid, $gid, $file_path); ldexp
-
Это идентично функции C
ldexp()для умножения чисел с плавающей точкой на степени двойки.$x_quadrupled = POSIX::ldexp($x, 2); ldiv-
Не реализовано. (Для вычисления частных от деления целых чисел типа long.)
ldiv()специфична для C, используйте/иint()вместо неё. lgamma-
Логарифм гамма-функции [C99]. Добавлено в Perl v5.22.
См. также "tgamma".
log1p-
Эквивалентно
log(1 + x), но обеспечивает более стабильные результаты для малых значений аргумента [C99]. Добавлено в Perl v5.22. log2-
Логарифм по основанию два [C99]. Добавлено в Perl v5.22.
См. также "expm1".
logb-
Целочисленный двоичный логарифм [C99]. Добавлено в Perl v5.22.
Например,
logb(20)равно 4, как число с плавающей точкой.См. также "ilogb".
link-
Это идентично встроенной в Perl функции
link()для создания жёстких ссылок на файлы, см. "link" в perlfunc. localeconv-
Получение информации о числовом формате. Возвращает ссылку на хеш, содержащий значения форматирования локали, которая в настоящее время используется программой, независимо от того, вызвана ли она в области видимости
use locale. Пользователи этой функции также должны прочитать perllocale, в котором содержится подробное обсуждение обработки локали в Perl, включая раздел, посвящённый этой функции. До Perl 5.28 или при работе в не-потокобезопасной среде её не следует использовать в потоковой приложении, если не известно, что основная локаль — C или POSIX. Это связано с тем, что в противном случае она изменяет локаль, что глобально влияет на все потоки одновременно. Платформы Windows, начиная с Visual Studio 2005, в основном потокобезопасны, но использование этой функции до Visual Studio 2015 может привести к гонке с потоком, который вызвал "switch_to_global_locale" в perlapi.Вот как запросить базу данных для локали de (Deutsch или немецкая).
my $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" ); print "Locale: \"$loc\"\n"; my $lconv = POSIX::localeconv(); foreach my $property (qw( decimal_point thousands_sep grouping int_curr_symbol currency_symbol mon_decimal_point mon_thousands_sep mon_grouping positive_sign negative_sign int_frac_digits frac_digits p_cs_precedes p_sep_by_space n_cs_precedes n_sep_by_space p_sign_posn n_sign_posn int_p_cs_precedes int_p_sep_by_space int_n_cs_precedes int_n_sep_by_space int_p_sign_posn int_n_sign_posn )) { printf qq(%s: "%s",\n), $property, $lconv->{$property}; }Члены, имена которых начинаются с
int_p_иint_n_, были добавлены POSIX.1-2008 и доступны только на системах, которые их поддерживают. localtime-
Это идентично встроенной в Perl функции
localtime()для преобразования секунд с начала эпохи в дату, см. "localtime" в perlfunc, за исключением того, чтоPOSIX::localtime()необходимо предоставить явное значение (вместо полагания на неявное$_):@localtime = POSIX::localtime(time); # good @localtime = localtime(); # good @localtime = POSIX::localtime(); # throws exception log-
Это идентично встроенной в Perl функции
log(), возвращающей натуральный (e-основанный) логарифм числового аргумента, см. "log" в perlfunc. log10-
Это идентично функции C
log10(), возвращающей логарифм по основанию 10 числового аргумента. Вы также можете использоватьsub log10 { log($_[0]) / log(10) }или
sub log10 { log($_[0]) / 2.30258509299405 }или
sub log10 { log($_[0]) * 0.434294481903252 } longjmp-
Не реализовано.
longjmp()специфична для C: используйте "die" в perlfunc вместо неё. lseek-
Перемещение позиции чтения/записи файла. Используются дескрипторы файлов, такие как полученные путём вызова
POSIX::open.$fd = POSIX::open( "foo", &POSIX::O_RDONLY ); $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET );Возвращает
undefпри ошибке. lrint-
В зависимости от текущего режима округления чисел с плавающей точкой, округляет аргумент либо до ближайшего значения (как "round"), либо к нулю (как "trunc"), вниз (к отрицательной бесконечности) или вверх (к положительной бесконечности) [C99]. Добавлено в Perl v5.22.
Для режима округления см. "fegetround".
lround-
Подобно "round", но как целое число, а не число с плавающей точкой [C99]. Добавлено в Perl v5.22.
См. также "ceil", "floor", "trunc".
Вследствие упущения, в настоящее время он не экспортируется по умолчанию или в рамках тега экспорта
:math_h_c99; поэтому его импорт необходимо выполнить явно. malloc-
Не реализовано.
malloc()специфична для C. Perl прозрачно управляет памятью. mblen-
Это то же самое, что функция C
mblen()в не-потоковых Perl. В потоковых Perl она прозрачно (почти) заменяет более потокобезопаснуюmbrlen(3), если она доступна, вместоmblen.Основной Perl не поддерживает широкие и многобайтовые локали, за исключением локали Unicode UTF-8. Эта функция в сочетании с "mbtowc" и "wctomb" может быть использована для самостоятельного декодирования/кодирования других типов многобайтовых локали.
Используйте
undefв качестве первого параметра, чтобы получить эффект передачи NULL в качестве первого параметра функцииmblen. Это сбрасывает любой сдвиг состояния до его начального значения. Возвращаемое значение неопределено, еслиmbrlenбыла заменена, поэтому на нём никогда не следует полагаться.Когда первый параметр — скаляр, содержащий строку PV или её можно преобразовать в PV строку, возвращаемое значение — количество байтов, занимаемых первым символом этой строки; или 0, если этот первый символ — широкий символ NUL; или отрицательное значение, если произошла ошибка. Это основано на локали, которая в настоящее время используется программой, независимо от того, вызвана ли функция из Perl-кода в области видимости
use locale. Perl не пытается скрыть от вашего кода любые различия в настройкеerrnoмеждуmblenиmbrlen. Он устанавливаетerrnoв 0 перед их вызовом.Необязательный второй параметр игнорируется, если он больше фактической длины строки первого параметра.
mbtowc-
Это то же самое, что функция C
mbtowc()в не-потоковых Perl. В потоковых Perl она прозрачно (почти) заменяет более потокобезопаснуюmbrtowc(3), если она доступна, вместоmbtowc.Основной Perl не поддерживает широкие и многобайтовые локали, за исключением локали Unicode UTF-8. Эта функция в сочетании с "mblen" и "wctomb" может быть использована для самостоятельного декодирования/кодирования других типов многобайтовых локали.
Первый параметр — скаляр, в который при успехе сохраняется широкий символ, представленный многобайтовой строкой, содержащейся во втором параметре. Необязательный третий параметр игнорируется, если он больше фактической длины строки второго параметра.
Используйте
undefв качестве второго параметра, чтобы получить эффект передачи NULL в качестве второго параметра функцииmbtowc. Это сбрасывает любой сдвиг состояния до его начального значения. Возвращаемое значение неопределено, еслиmbrtowcбыла заменена, поэтому на нём никогда не следует полагаться.Когда второй параметр — скаляр, содержащий строку PV или её можно преобразовать в PV строку, возвращаемое значение — количество байтов, занимаемых первым символом этой строки; или 0, если этот первый символ — широкий символ NUL; или отрицательное значение, если произошла ошибка. Это основано на локали, которая в настоящее время используется программой, независимо от того, вызвана ли функция из Perl-кода в области видимости
use locale. Perl не пытается скрыть от вашего кода любые различия в настройкеerrnoмеждуmbtowcиmbrtowc. Он устанавливаетerrnoв 0 перед их вызовом. memchr-
Не реализовано.
memchr()специфична для C, см. "index" в perlfunc вместо неё. memcmp-
Не реализовано.
memcmp()специфична для C, используйтеeqвместо неё, см. perlop. memcpy-
Не реализовано.
memcpy()специфична для C, используйте=, см. perlop, или см. "substr" в perlfunc. memmove-
Не реализовано.
memmove()специфична для C, используйте=, см. perlop, или см. "substr" в perlfunc. memset-
Не реализовано.
memset()специфична для C, используйтеxвместо неё, см. perlop. mkdir-
Это идентично встроенной в Perl функции
mkdir()для создания каталогов, см. "mkdir" в perlfunc. mkfifo-
Это аналогично функции C
mkfifo()для создания специальных файлов FIFO.if (mkfifo($path, $mode)) { ....Возвращает
undefпри ошибке.$modeаналогична режимуmkdir(), см. "mkdir" в perlfunc, хотя дляmkfifoвы обязательно должны указать$mode. mktime-
Преобразование информации о дате/времени в календарное время.
Синтаксис:
mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = -1)Месяц (
mon), день недели (wday), и день года (yday) начинаются с нуля, т.е., январь — 0, а не 1; воскресенье — 0, а не 1; 1 января — 0, а не 1. Год (year) задаётся в годах с 1900 года; т.е., год 1995 — 95; год 2001 — 101. Обратитесь к руководству вашей системыmktime()для получения подробностей об этих и других аргументах.Календарное время для 12 декабря 1995 года в 10:30 утра.
$time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 ); print "Date = ", POSIX::ctime($time_t);Возвращает
undefпри ошибке. modf-
Возвращение целой и дробной части числа с плавающей точкой.
($fractional, $integral) = POSIX::modf( 3.14 );См. также "round".
NaN
-
Число, не являющееся числом (NaN) как константа:
use POSIX qw(NaN); my $nan = NaN;См. также "nan",
/isnan, и "fpclassify". nan-
my $nan = nan();Возвращает
NaN, число, не являющееся числом [C99]. Добавлено в Perl v5.22.Возвращаемое NaN всегда является тихим NaN, в отличие от сигнализирующего.
С аргументом можно сгенерировать NaN с нагрузкой. Аргумент сначала интерпретируется как число с плавающей точкой, но затем дробные части усекаются (к нулю), и значение интерпретируется как целое без знака. Биты этого целого числа хранятся в неиспользуемых битах NaN.
Результат имеет двойственную природу: это NaN, но он также несёт целое число внутри. Целое число можно получить с помощью "getpayload". Однако следует учесть, что нагрузка не передаётся, даже при копировании, и определённо не в арифметических операциях.
Количество битов, умещающихся в NaN, зависит от типа используемых чисел с плавающей точкой, но на наиболее распространённых платформах (64-битный IEEE 754 или 80-битные long double x86) доступно соответственно 51 и 61 бит. (Было бы 52 и 62, но бит quiet/signaling NaN занимает один.) Однако из-за преобразований из чисел с плавающей точкой в целые и обратно, пожалуйста, тщательно протестируйте, получаете ли вы обратно то, что ввели. Если ваши целые числа имеют только 32 бита, вы, вероятно, не должны полагаться на больше, чем 32 бита нагрузки.
Различается ли "сигнализирующее" NaN от "тихого" NaN каким-либо образом, зависит от платформы. Также обратите внимание, что нагрузка по умолчанию NaN (без аргумента в nan()) не обязательно равна нулю, используйте
setpayloadдля явного задания нагрузки. На некоторых платформах, таких как 32-битный x86 (если не используются 80-битные long double), бит сигнализации вообще не поддерживается.См. также "isnan", "NaN", "setpayload" и "issignaling".
nearbyint-
Возвращает ближайшее целое число к аргументу в соответствии с текущим режимом округления (см. "fegetround") [C99]. Добавлено в Perl v5.22.
nextafter-
Возвращает следующее представимое число с плавающей точкой после
xв направленииy[C99]. Добавлено в Perl v5.22.my $nextafter = POSIX::nextafter($x, $y);Аналогично "nexttoward", но потенциально менее точным.
nexttoward-
Возвращает следующее представимое число с плавающей точкой после
xв направленииy[C99]. Добавлено в Perl v5.22.my $nexttoward = POSIX::nexttoward($x, $y);Аналогично "nextafter", но потенциально более точным.
nice-
Это аналогично функции C
nice(), для изменения приоритета планирования текущего процесса. Положительные аргументы означают более вежливый процесс, отрицательные значения — более нуждающийся процесс. Обычные (не root) пользовательские процессы могут изменить только в сторону большей вежливости.Возвращает
undefпри ошибке. offsetof-
Не реализовано.
offsetof()— это специфично для C, вы, вероятно, хотите посмотреть "pack" в perlfunc вместо этого. open-
Открыть файл для чтения или записи. Это возвращает дескрипторы файлов, а не дескрипторы файлов Perl. Используйте
POSIX::closeдля закрытия файла.Открыть файл только для чтения с режимом 0666.
$fd = POSIX::open( "foo" );Открыть файл для чтения и записи.
$fd = POSIX::open( "foo", &POSIX::O_RDWR );Открыть файл для записи с усечением.
$fd = POSIX::open( "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC );Создать новый файл с режимом 0640. Подготовить файл для записи.
$fd = POSIX::open( "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640 );Возвращает
undefпри ошибке.См. также "sysopen" в perlfunc.
opendir-
Открыть директорию для чтения.
$dir = POSIX::opendir( "/var" ); @files = POSIX::readdir( $dir ); POSIX::closedir( $dir );Возвращает
undefпри ошибке. pathconf-
Извлекает значение конфигурируемого ограничения для файла или директории.
Следующее определит максимальную длину самого длинного допустимого пути в файловой системе, которая содержит
/var.$path_max = POSIX::pathconf( "/var", &POSIX::_PC_PATH_MAX );Возвращает
undefпри ошибке. pause-
Это аналогично функции C
pause(), которая приостанавливает выполнение текущего процесса до получения сигнала.Возвращает
undefпри ошибке. perror-
Это идентично функции C
perror(), которая выводит в поток стандартной ошибки указанное сообщение, за которым следует": "и текущую строку ошибки. Используйте функциюwarn()и переменную$!, см. "warn" в perlfunc и "$ERRNO" в perlvar. pipe-
Создать межпроцессный канал. Это возвращает дескрипторы файлов, такие же, как те, которые возвращает
POSIX::open.my ($read, $write) = POSIX::pipe(); POSIX::write( $write, "hello", 5 ); POSIX::read( $read, $buf, 5 );См. также "pipe" в perlfunc.
pow-
Вычисляет
$xв степени$exponent.$ret = POSIX::pow( $x, $exponent );Вы также можете использовать оператор
**, см. perlop. printf-
Форматирует и выводит указанные аргументы в
STDOUT. См. также "printf" в perlfunc. putc-
Не реализовано.
putc()— это специфично для C, см. "print" в perlfunc вместо этого. putchar-
Не реализовано.
putchar()— это специфично для C, см. "print" в perlfunc вместо этого. puts-
Не реализовано.
puts()— это специфично для C, см. "print" в perlfunc вместо этого. qsort-
Не реализовано.
qsort()— это специфично для C, см. "sort" в perlfunc вместо этого. raise-
Отправляет указанный сигнал текущему процессу. См. также "kill" в perlfunc и
$$в "$PID" в perlvar. rand-
Не реализовано.
rand()не переносимо, см. "rand" в perlfunc вместо этого. read-
Читать из файла. Это использует дескрипторы файлов, такие как те, что получены вызовом
POSIX::open. Если буфер$bufнедостаточно велик для чтения, Perl расширит его, чтобы освободить место для запроса.$fd = POSIX::open( "foo", &POSIX::O_RDONLY ); $bytes = POSIX::read( $fd, $buf, 3 );Возвращает
undefпри ошибке.См. также "sysread" в perlfunc.
readdir-
Это идентично встроенной функции Perl
readdir()для чтения записей каталога, см. "readdir" в perlfunc. realloc-
Не реализовано.
realloc()— это специфично для C. Perl прозрачно управляет памятью. remainder-
Даны
xиy, возвращает значениеx - n*y, гдеn— это целое число, наиболее близкое кx/y[C99]. Добавлено в Perl v5.22.my $remainder = POSIX::remainder($x, $y)См. также "remquo".
remove-
Удаляет имя из файловой системы. Вызывает "unlink" в perlfunc для файлов и "rmdir" в perlfunc для каталогов.
remquo-
Подобно "remainder", но также возвращает младшие биты частного (n) [C99]. Добавлено в Perl v5.22.
(Это довольно экзотический интерфейс, в основном используется для реализации численных алгоритмов.)
rename-
Это идентично встроенной функции Perl
rename()для переименования файлов, см. "rename" в perlfunc. rewind-
Перемещает указатель в начало файла.
rewinddir-
Это идентично встроенной функции Perl
rewinddir()для перемотки потоков записей каталога, см. "rewinddir" в perlfunc. rint-
Идентично "lrint".
rmdir-
Это идентично встроенной функции Perl
rmdir()для удаления (пустых) каталогов, см. "rmdir" в perlfunc. round-
Возвращает целое число (но всё ещё с плавающей точкой), ближайшее к аргументу [C99]. Добавлено в Perl v5.22.
scalbn-
Возвращает
x * 2**y[C99]. Добавлено в Perl v5.22. scanf-
Не реализовано.
scanf()— это специфично для C, используйте <> и регулярные выражения вместо этого, см. perlre. setgid-
Устанавливает действительный и эффективный идентификатор группы для данного процесса. Аналогично присвоению значения встроенной переменной Perl
$), см. "$EGID" в perlvar, за исключением того, что последний изменит только действительный идентификатор пользователя, а setgid() использует только один числовой аргумент, а не список чисел, разделённых пробелом. setjmp-
Не реализовано.
setjmp()— это специфично для C: используйтеeval {}вместо этого, см. "eval" в perlfunc. setlocale
-
ВНИМАНИЕ! До Perl 5.28 или на системах, не поддерживающих многопоточные операции с языком локализации, НЕ используйте эту функцию в потоке. Язык локализации изменится во всех потоках одновременно, и если ваш поток будет приостановлен операционной системой, а другой запущен, этот поток не получит ожидаемый язык локализации. На некоторых платформах может возникнуть проблема гонки, приводящая к сбоям, если две нити почти одновременно вызовут эту функцию. Это предупреждение не относится к не многопоточным сборкам или к версиям Perl, где
${^SAFE_LOCALES}существует и отлично от нуля; а именно Perl 5.28 и более поздние версии, скомпилированные с многопоточной безопасностью локализации.Эта функция изменяет и запрашивает базовый язык локализации программы. Пользователи этой функции должны прочитать perllocale, в котором подробно обсуждается обработка локализации в Perl, знание которой необходимо для правильного использования этой функции. Он содержит раздел, посвящённый этой функции. Здесь приведён лишь краткий справочник по
setlocale(). Обратите внимание, что сам Perl практически не зависит от локализации, кроме как в рамках"use locale". (Исключения перечислены в "Не в рамках области действия "use locale"" в perllocale, и функции, зависящие от локализации, в модуле POSIX, ВСЕГДА зависят от текущей локализации.)Следующие примеры предполагают
use POSIX qw(setlocale LC_ALL LC_CTYPE);была выполнена.
Следующее действие задаст традиционное поведение локали UNIX-систем (второй аргумент
"C").$loc = setlocale( LC_ALL, "C" );Следующее действие запросит текущую
LC_CTYPEкатегорию. (Отсутствие второго аргумента означает 'запрос'.)$loc = setlocale( LC_CTYPE );Следующее действие задаст поведение
LC_CTYPEв соответствии с переменными окружения локали (второй аргумент""). Обратитесь к документации вашей системыsetlocale(3)для значения переменных окружения локали или обратитесь к perllocale.$loc = setlocale( LC_CTYPE, "" );Следующее действие задаст поведение
LC_COLLATEдля аргентинского испанского языка. ПРИМЕЧАНИЕ: Название и доступность языковых локалей зависят от вашей операционной системы. Обратитесь к perllocale для получения информации о доступных локалях в вашей системе.$loc = setlocale( LC_COLLATE, "es_AR.ISO8859-1" ); setpayload-
use POSIX ':nan_payload'; setpayload($var, $payload);Устанавливает
NaNpayload переменной var. Добавлено в Perl v5.24.ПРИМЕЧАНИЕ: API для payload NaN основаны на последних (по состоянию на июнь 2015 года) предложенных интерфейсах ISO C, но они ещё не являются стандартом. Возможно, что-то изменится.
См. "nan" для более подробного обсуждения
NaN.См. также "setpayloadsig", "isnan", "getpayload" и "issignaling".
setpayloadsig-
use POSIX ':nan_payload'; setpayloadsig($var, $payload);Как "setpayload", но также делает NaN сигнализирующим. Добавлено в Perl v5.24.
В зависимости от платформы NaN может вести себя по-разному.
Обратите внимание на предупреждение о нестабильности API в "setpayload".
Обратите внимание, что из-за того, как работают форматы чисел с плавающей точкой, на наиболее распространённых платформах следует избегать сигнализирующего payload нулевой величины, поскольку он может оказаться идентичным
+Inf.См. также "nan", "isnan", "getpayload" и "issignaling".
setpgid-
Это аналогично C-функции
setpgid()для установки идентификатора группы процессов текущего процесса.Возвращает
undefпри ошибке. setsid-
Это идентично C-функции
setsid()для установки идентификатора сеанса текущего процесса. setuid-
Устанавливает реальный идентификатор пользователя и эффективный идентификатор пользователя для данного процесса. Аналогично присваиванию значения встроенной переменной Perl
$<, см. "$UID" в perlvar, за исключением того, что последний изменит только реальный идентификатор пользователя. sigaction-
Детальное управление сигналами. Использует объекты
POSIX::SigActionдля аргументовactionиoldaction(oldaction также может быть просто ссылкой на хэш). Для подробностей обратитесь к странице man вашей системыsigaction, см. такжеPOSIX::SigRt.Синтаксис:
sigaction(signal, action, oldaction = 0)Возвращает
undefпри ошибке.signalдолжно быть числом (например,SIGHUP), а не строкой (например,"SIGHUP"), хотя Perl старается понять вас.Если вы используете флаг
SA_SIGINFO, обработчик сигналов, помимо первого аргумента (имя сигнала), также получит второй аргумент — ссылку на хэш, в котором находятся следующие ключи со следующими семантиками, как определено POSIX/SUSv3:signo the signal number errno the error number code if this is zero or less, the signal was sent by a user process and the uid and pid make sense, otherwise the signal was sent by the kernelКонстанты для конкретных значений
codeможно импортировать индивидуально или с помощью тега:signal_h_si_code, начиная с Perl v5.24.Ниже также определены POSIX/SUSv3, но, к сожалению, не очень широко реализованы:
pid the process id generating the signal uid the uid of the process id generating the signal status exit value or signal for SIGCHLD band band event for SIGPOLL addr address of faulting instruction or memory reference for SIGILL, SIGFPE, SIGSEGV or SIGBUSТретий аргумент также передается обработчику, который содержит копию исходных двоичных данных структуры
siginfo: если система имеет некоторые не-POSIX поля, этот третий аргумент используется дляunpack()их.Обратите внимание, что не все значения
siginfoимеют смысл одновременно (некоторые допустимы только для определённых сигналов, например), и не все значения имеют смысл с точки зрения Perl. Вам следует обратиться к документации вашей системыsigactionи, возможно, также к документацииsiginfo. siglongjmp-
Не реализовано.
siglongjmp()— специфично для C: используйте "die" в perlfunc вместо этого. signbit-
Возвращает ноль для положительных аргументов и ненулевое значение для отрицательных аргументов [C99]. Добавлено в Perl v5.22.
sigpending-
Просмотр заблокированных и ожидающих сигналов. Использует объекты
POSIX::SigSetдля аргументаsigset. Обратитесь к странице man вашей системыsigpendingдля подробностей.Синтаксис:
sigpending(sigset)Возвращает
undefпри ошибке. sigprocmask-
Изменение и/или проверка маски сигналов вызывающего процесса. Использует объекты
POSIX::SigSetдля аргументовsigsetиoldsigset. Обратитесь к странице man вашей системыsigprocmaskдля подробностей.Синтаксис:
sigprocmask(how, sigset, oldsigset = 0)Возвращает
undefпри ошибке.Обратите внимание, что вы не можете надёжно блокировать или разблокировать сигнал из своего собственного обработчика сигналов, если используете безопасные сигналы. Другие сигналы могут быть надёжно заблокированы или разблокированы.
sigsetjmp-
Не реализовано.
sigsetjmp()— специфично для C: используйтеeval {}вместо этого, см. "eval" в perlfunc. sigsuspend-
Установка маски сигналов и приостановка процесса до получения сигнала. Использует объекты
POSIX::SigSetдля аргументаsignal_mask. Обратитесь к странице man вашей системыsigsuspendдля подробностей.Синтаксис:
sigsuspend(signal_mask)Возвращает
undefпри ошибке. sin-
Это идентично встроенной функции Perl
sin()для возвращения синуса числового аргумента, см. "sin" в perlfunc. См. также Math::Trig. sinh-
Это идентично C-функции
sinh()для возвращения гиперболического синуса числового аргумента. См. также Math::Trig. sleep-
Функционально идентично встроенной функции Perl
sleep()для приостановки выполнения текущего процесса на определённое количество секунд, см. "sleep" в perlfunc. Однако есть одно важное различие:POSIX::sleep()возвращает количество непроспанных секунд, в то время какCORE::sleep()возвращает количество проспанных секунд. sprintf-
Аналогично встроенной функции Perl
sprintf()для возвращения строки с отформатированными аргументами, см. "sprintf" в perlfunc. sqrt-
Идентично встроенной функции Perl
sqrt()для возвращения квадратного корня числового аргумента, см. "sqrt" в perlfunc. srand-
Задаёт начальное значение для генератора псевдослучайных чисел, см. "srand" в perlfunc.
sscanf-
Не реализовано.
sscanf()— специфично для C, используйте вместо этого регулярные выражения, см. perlre. stat-
Идентично встроенной функции Perl
stat()для получения информации о файлах и каталогах. strcat-
Не реализовано.
strcat()— специфично для C, используйте.=вместо этого, см. perlop. strchr-
Не реализовано.
strchr()— специфично для C, см. "index" в perlfunc вместо этого. strcmp-
Не реализовано.
strcmp()— специфично для C, используйтеeqилиcmpвместо этого, см. perlop. strcoll-
Идентично C-функции
strcoll()для сортировки (сравнения) строк, преобразованных с использованием функцииstrxfrm(). Не обязательно, так как Perl может делать это прозрачно, см. perllocale.Обратите внимание, что в UTF-8 локали всё, что вы передаёте в эту функцию, должно быть в UTF-8; а когда не в UTF-8 локали, всё, что передаётся, не должно быть закодировано в UTF-8.
Также обратите внимание, что нет смысла кодировать строку в одной локали (скажем, ISO-8859-6, арабский) и сортировать её по другой (например, ISO-8859-7, греческий). Результаты будут в значительной степени бессмысленными.
strcpy
-
Не реализовано.
strcpy()— специфично для C, используйте=вместо него, см. perlop. strcspn-
Не реализовано.
strcspn()— специфично для C, используйте регулярные выражения вместо него, см. perlre. strerror-
Возвращает строку ошибки для указанного errno. Идентично строковой форме
$!, см. "$ERRNO" в perlvar. strftime-
Преобразует информацию о дате и времени в строку. Возвращает строку.
Синтаксис:
strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1)Месяц (
mon), день недели (wday) и день года (yday) начинаются с нуля, т.е., январь — 0, а не 1; воскресенье — 0, а не 1; 1 января — 0, а не 1. Год (year) задаётся в годах с 1900 года, т.е., 1995 год — 95; 2001 год — 101. Обратитесь к странице справки вашей системыstrftime()для получения подробной информации об этих и других аргументах.Если вы хотите, чтобы ваш код был переносимым, ваш аргумент формата (
fmt) должен использовать только спецификаторы преобразования, определённые стандартом ANSI C (C89, для большей безопасности). ЭтоaAbBcdHIjmMpSUwWxXyYZ%. Но даже в этом случае результаты некоторых спецификаторов преобразования не переносимы. Например, спецификаторыaAbBcpZменяются в зависимости от настроек локали пользователя, и как настроить локали (имена локалей), так и ожидаемый результат не являются стандартными. Спецификаторcизменяется в зависимости от настроек часового пояса пользователя и правил расчёта часовых поясов операционной системы. СпецификаторZпечально известен своей непереносимостью, так как имена часовых поясов не стандартны. Придерживаться числовых спецификаторов — самый безопасный путь.Приведённые аргументы делаются согласованными как будто вы вызываете
mktime()перед вызовом функцииstrftime()вашей системы, за исключением того, что значениеisdstне затрагивается.Строка для вторника, 12 декабря 1995 года.
$str = POSIX::strftime( "%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2 ); print "$str\n"; strlen-
Не реализовано.
strlen()— специфично для C, используйтеlength()вместо него, см. "length" в perlfunc. strncat-
Не реализовано.
strncat()— специфично для C, используйте.=вместо него, см. perlop. strncmp-
Не реализовано.
strncmp()— специфично для C, используйтеeqвместо него, см. perlop. strncpy-
Не реализовано.
strncpy()— специфично для C, используйте=вместо него, см. perlop. strpbrk-
Не реализовано.
strpbrk()— специфично для C, используйте регулярные выражения вместо него, см. perlre. strrchr-
Не реализовано.
strrchr()— специфично для C, см. "rindex" в perlfunc вместо него. strspn-
Не реализовано.
strspn()— специфично для C, используйте регулярные выражения вместо него, см. perlre. strstr-
Это идентично встроенной в Perl функции
index(), см. "index" в perlfunc. strtod-
Преобразование строки в двойное число. Возвращает разобранное число и количество символов в необработанной части строки. Настоящие системы, совместимые с POSIX, устанавливают
$!($ERRNO) для указания ошибки преобразования, поэтому очистите$!перед вызовомstrtod. Однако системы, не совместимые с POSIX, могут не проверять переполнение, и поэтому никогда не устанавливают$!.strtodучитывает любые настройки POSIXsetlocale()LC_NUMERICнезависимо от того, вызывается ли он из кода Perl, находящегося в рамкахuse locale. До Perl 5.28 или при работе в не потокобезопасной среде его не следует использовать в многопоточных приложениях, если не известно наверняка, что базовой локалью является C или POSIX. Это происходит потому, что в противном случае он изменяет локаль, которая глобально влияет на все потоки одновременно.Для разбора строки
$strв виде числа с плавающей запятой используйте$! = 0; ($num, $n_unparsed) = POSIX::strtod($str);Возвращаемое второе значение и
$!могут использоваться для проверки корректности ввода:if (($str eq '') || ($n_unparsed != 0) || $!) { die "Non-numeric input $str" . ($! ? ": $!\n" : "\n"); }При вызове в скалярном контексте
strtodвозвращает разобранное число. strtok-
Не реализовано.
strtok()— специфично для C, используйте регулярные выражения вместо него, см. perlre или "split" в perlfunc. strtol-
Преобразование строки в (длинное) целое число. Возвращает разобранное число и количество символов в необработанной части строки. Настоящие системы, совместимые с POSIX, устанавливают
$!($ERRNO) для указания ошибки преобразования, поэтому очистите$!перед вызовомstrtol. Однако системы, не совместимые с POSIX, могут не проверять переполнение, и поэтому никогда не устанавливают$!.strtolдолжен учитывать любые настройки POSIX setlocale().Для разбора строки
$strкак числа в определённой системе счисления$baseиспользуйте$! = 0; ($num, $n_unparsed) = POSIX::strtol($str, $base);Система счисления должна быть равна нулю или находиться в диапазоне от 2 до 36 включительно. Если система счисления равна нулю или опущена,
strtolбудет использовать саму строку для определения системы счисления: "0x" или "0X" означает шестнадцатеричную систему; "0" означает восьмеричную систему; все другие ведущие символы означают десятичную систему. Таким образом, "1234" разбирается как десятичное число, "01234" как восьмеричное число и "0x1234" как шестнадцатеричное число.Возвращаемое второе значение и
$!могут использоваться для проверки корректности ввода:if (($str eq '') || ($n_unparsed != 0) || !$!) { die "Non-numeric input $str" . $! ? ": $!\n" : "\n"; }При вызове в скалярном контексте
strtolвозвращает разобранное число. strtold-
Как "strtod", но для длинных двойных чисел. Определено только если система поддерживает длинные двойные числа.
strtoul-
Преобразование строки в целое беззнаковое (длинное) число.
strtoul()идентичноstrtol()за исключением того, чтоstrtoul()парсит только беззнаковые целые числа. См. "strtol" для подробностей.Примечание: Некоторые поставщики предоставляют
strtod()иstrtol(), но неstrtoul(). Другие поставщики, которые предоставляютstrtoul(), парсят "-1" как допустимое значение. strxfrm-
Преобразование строки. Возвращает преобразованную строку.
$dst = POSIX::strxfrm( $src );Используется с
eqилиcmpкак альтернатива"strcoll".В действительности не требуется, так как Perl может сделать это прозрачно, см. perllocale.
Обратите внимание, что в локали UTF-8 всё, что вы передаёте этой функции, должно быть в UTF-8; а когда локали не UTF-8, передаваемая информация не должна быть закодирована в UTF-8.
sysconf-
Извлекает значения системных конфигурационных переменных.
Следующее получит тактовую частоту процессора машины.
$clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );Возвращает
undefпри ошибке. system-
Это идентично встроенной в Perl функции
system(), см. "system" в perlfunc. tan-
Это идентично функции C
tan(), возвращающей тангенс числового аргумента. См. также Math::Trig. tanh-
Это идентично функции C
tanh(), возвращающей гиперболический тангенс числового аргумента. См. также Math::Trig. tcdrain-
Это аналогично функции C
tcdrain()для слива очереди вывода её потока.Возвращает
undefпри ошибке. tcflow-
Это аналогично функции C
tcflow()для управления потоком её потока.Возвращает
undefпри ошибке. tcflush-
Это аналогично функции C
tcflush()для сброса буферов ввода/вывода её потока.Возвращает
undefпри ошибке. tcgetpgrp-
Это идентично функции C
tcgetpgrp()для возвращения идентификатора группы процессов фоновой группы процесса управляющего терминала. tcsendbreak-
Это аналогично функции C
tcsendbreak()для отправки прерывания на её поток.Возвращает
undefпри ошибке. tcsetpgrp-
Это аналогично функции C
tcsetpgrp()для установки идентификатора группы процессов фоновой группы процесса управляющего терминала.Возвращает
undefпри ошибке. tgamma-
Функция Гамма [C99]. Добавлена в Perl v5.22.
См. также "lgamma".
time-
Это идентично встроенной в Perl функции
time()для возвращения количества секунд с эпохи (какая она есть для системы), см. "time" в perlfunc. times-
Функция
times()возвращает прошедшее реальное время с момента в прошлом (такого как запуск системы), время пользователя и системы для данного процесса, а также время пользователя и системы, используемое дочерними процессами. Все времена возвращаются в тактах процессора.($realtime, $user, $system, $cuser, $csystem) = POSIX::times();Примечание: Встроенная в Perl функция
times()возвращает четыре значения, измеренные в секундах. tmpfile-
Не реализовано. Используйте метод
IO::File::new_tmpfile()вместо него или см. File::Temp. tmpnam-
По соображениям безопасности, которые, вероятно, подробно описаны в документации вашей системы для функции C-библиотеки
tmpnam(), этот интерфейс больше недоступен с Perl v5.26; вместо этого используйте File::Temp. tolower
-
Эта функция удалена начиная с Perl v5.26. Она идентична C-функции, за исключением того, что может применяться к одному символу или к целой строке, и в настоящее время работает так, как если бы локаль всегда была «C». Рассмотрите использование функции
lc(), см. "lc" в perlfunc, см. "lc" в perlfunc, или эквивалентный оператор\Lвнутри строк в двойных кавычках. toupper-
Эта функция удалена начиная с Perl v5.26. Она похожа на C-функцию, за исключением того, что может применяться к одному символу или к целой строке, и в настоящее время работает так, как если бы локаль всегда была «C». Рассмотрите использование функции
uc(), см. "uc" в perlfunc, или эквивалентный оператор\Uвнутри строк в двойных кавычках. trunc-
Возвращает целое число, приближённое к нулю от аргумента [C99]. Добавлена в Perl v5.22.
ttyname-
Идентична C-функции
ttyname()для возвращения имени текущего терминала. tzname-
Извлекает информацию о преобразовании времени из переменной
tzname.POSIX::tzset(); ($std, $dst) = POSIX::tzname(); tzset-
Идентична C-функции
tzset()для установки текущей временной зоны на основе переменной средыTZ, которая используется функциямиctime(),localtime(),mktime()иstrftime(). umask-
Идентична встроенной Perl-функции
umask()для установки (и запроса) маски разрешений создания файлов, см. "umask" в perlfunc. uname-
Получить имя текущей операционной системы.
($sysname, $nodename, $release, $version, $machine) = POSIX::uname();Обратите внимание, что фактическое значение различных полей не очень стандартизировано, не ожидайте высокой портативности.
$sysnameможет быть именем операционной системы,$nodenameможет быть именем хоста,$releaseможет быть номером (главной) версии операционной системы,$versionможет быть номером (дополнительной) версии операционной системы, а$machineможет быть идентификатором аппаратного обеспечения. Возможно. ungetc-
Не реализовано. Используйте метод
IO::Handle::ungetc()вместо этого. unlink-
Идентична встроенной Perl-функции
unlink()для удаления файлов, см. "unlink" в perlfunc. utime-
Идентична встроенной Perl-функции
utime()для изменения временных меток файлов и каталогов, см. "utime" в perlfunc. vfprintf-
Не реализовано.
vfprintf()специфично для C, используйте "printf" в perlfunc вместо этого. vprintf-
Не реализовано.
vprintf()специфично для C, используйте "printf" в perlfunc вместо этого. vsprintf-
Не реализовано.
vsprintf()специфично для C, используйте "sprintf" в perlfunc вместо этого. wait-
Идентична встроенной Perl-функции
wait(), см. "wait" в perlfunc. waitpid-
Ожидание завершения процесса-потомка. Идентична встроенной Perl-функции
waitpid(), см. "waitpid" в perlfunc.$pid = POSIX::waitpid( -1, POSIX::WNOHANG ); print "status = ", ($? / 256), "\n";См. "mblen".
wctomb-
То же самое, что и C-функция
wctomb()в однопоточных Perl. В многопоточных Perl она прозрачно (почти) заменяет более безопасную для многопоточности функциюwcrtomb(3), если доступна, вместоwctomb.Основной Perl не поддерживает локальные настройки широких и многобайтовых символов, кроме локалей Unicode UTF-8. Эта функция в сочетании с "mblen" и "mbtowc" может использоваться для разработки собственной декодирования/кодирования других типов многобайтовых локалей.
Используйте
undefв качестве первого параметра этой функции, чтобы получить эффект передачи NULL в качестве первого параметра функцииwctomb. Это сбросит любое состояние сдвига до его начального значения. Возвращаемое значение неопределено, если была заменена функцияwcrtomb, поэтому на него никогда не следует полагаться.Когда первый параметр является скаляром, код символа, содержащийся во втором параметре-скаляре, преобразуется в многобайтовую строку и сохраняется в первом параметре-скаляре. Это основано на локали, которая в настоящее время используется программой, независимо от того, вызывается ли функция из кода Perl, который находится в области действия
use locale. Возвращаемое значение — количество сохранённых байтов; или отрицательное значение, если код символа не может быть представлен в текущей локали. Perl не пытается скрыть от вашего кода какие-либо различия в настройкеerrnoмеждуwctombиwcrtomb. Он устанавливаетerrnoв 0 перед их вызовом. write-
Запись в файл. Использует дескрипторы файлов, такие как полученные при вызове
POSIX::open.$fd = POSIX::open( "foo", &POSIX::O_WRONLY ); $buf = "hello"; $bytes = POSIX::write( $fd, $buf, 5 );Возвращает
undefпри ошибке.См. также "syswrite" в perlfunc.
КЛАССЫ
POSIX::SigAction
new-
Создаёт новый объект
POSIX::SigAction, который соответствует C-функцииstruct sigaction. Этот объект будет уничтожен автоматически, когда он больше не нужен. Первый параметр — обработчик, ссылка на подпрограмму. Второй параметр — объектPOSIX::SigSet, по умолчанию — пустое множество. Третий параметр содержитsa_flags, по умолчанию — 0.$sigset = POSIX::SigSet->new(SIGINT, SIGQUIT); $sigaction = POSIX::SigAction->new( \&handler, $sigset, &POSIX::SA_NOCLDSTOP );Этот объект
POSIX::SigActionпредназначен для использования с функциейPOSIX::sigaction().
handlermaskflags-
Функции доступа для получения/установки значений объекта SigAction.
$sigset = $sigaction->mask; $sigaction->flags(&POSIX::SA_RESTART); safe-
Функция доступа к флагу «безопасных сигналов» объекта SigAction; см. perlipc для общей информации о безопасных (также называемых «отложенными») сигналах. Если вы хотите обработать сигнал безопасно, используйте этот аксессор для установки флага «безопасный» в объекте
POSIX::SigAction:$sigaction->safe(1);Вы также можете проверить флаг «безопасный» в выходном объекте действия, который заполняется, когда он передаётся в качестве третьего параметра функции
POSIX::sigaction():sigaction(SIGINT, $new_action, $old_action); if ($old_action->safe) { # previous SIGINT handler used safe signals }
POSIX::SigRt
-
%SIGRT -
Хэш обработчиков сигналов реального времени POSIX. Это расширение стандартного
%SIG,$POSIX::SIGRT{SIGRTMIN}примерно эквивалентно$SIG{SIGRTMIN}, но правильные действия POSIX (см. ниже) выполняются с помощьюPOSIX::SigSetиPOSIX::sigactionвместо доступа к%SIG.Вы можете установить элементы
%POSIX::SIGRTдля установки обработчиков сигналов реального времени POSIX, использоватьdeleteиexistsдля элементов и использоватьscalarдля%POSIX::SIGRTдля определения количества доступных сигналов реального времени POSIX(SIGRTMAX - SIGRTMIN + 1,SIGRTMAX— это действительный сигнал реального времени POSIX.Установка элементов
%SIGRTэквивалентна вызову этого:sub new { my ($rtsig, $handler, $flags) = @_; my $sigset = POSIX::SigSet($rtsig); my $sigact = POSIX::SigAction->new($handler,$sigset,$flags); sigaction($rtsig, $sigact); }Флаги по умолчанию равны нулю. Если вам нужно что-то другое, вы можете либо использовать
localна$POSIX::SigRt::SIGACTION_FLAGS, либо вы можете унаследовать от POSIX::SigRt и определить свой собственныйnew()(метод STORE связанного хэша%SIGRTвызываетnew($rtsig, $handler, $SIGACTION_FLAGS), где$rtsigнаходится в диапазоне от нуля доSIGRTMAX - SIGRTMIN + 1)).Точно так же, как и с любым сигналом, вы можете использовать
sigaction($rtsig, undef, $oa)для получения установленного обработчика сигнала (или, скорее, действия сигнала).ПРИМЕЧАНИЕ: работает ли POSIX сигналы реального времени в вашей системе или Perl был скомпилирован для работы с ними, выходит за рамки этой темы.
SIGRTMIN-
Возвращает минимальное значение номера сигнала реального времени POSIX, доступное, или
undef, если сигналы реального времени POSIX недоступны. SIGRTMAX-
Возвращает максимальное значение номера сигнала реального времени POSIX, доступное, или
undef, если сигналы реального времени POSIX недоступны.
POSIX::SigSet
new-
Создаёт новый объект SigSet. Этот объект будет уничтожен автоматически, когда он больше не нужен. Аргументы могут быть переданы для инициализации множества.
Создаёт пустое множество.
$sigset = POSIX::SigSet->new;Создаёт множество с
SIGUSR1.$sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );Выбрасывает ошибку, если любой из предоставленных сигналов не может быть добавлен в множество.
addset-
Добавляет сигнал в объект SigSet.
$sigset->addset( &POSIX::SIGUSR2 );Возвращает
undefпри ошибке. delset-
Удаляет сигнал из объекта SigSet.
$sigset->delset( &POSIX::SIGUSR2 );Возвращает
undefпри ошибке. emptyset-
Инициализирует объект SigSet как пустой.
$sigset->emptyset();Возвращает
undefпри ошибке. fillset-
Инициализирует объект SigSet, включив все сигналы.
$sigset->fillset();Возвращает
undefпри ошибке. ismember-
Проверяет объект SigSet на наличие указанного сигнала.
if( $sigset->ismember( &POSIX::SIGUSR1 ) ){ print "contains SIGUSR1\n"; }
POSIX::Termios
new-
Создайте новый объект Termios. Этот объект будет автоматически уничтожен, когда он больше не нужен. Объект Termios соответствует структуре C
termios.new()выделяет новую,getattr()заполняет её данными из дескриптора файла, иsetattr()устанавливает параметры дескриптора файла, чтобы они соответствовали содержимому Termios.$termios = POSIX::Termios->new; getattr-
Получить атрибуты управления терминалом.
Получить атрибуты для
stdin.$termios->getattr( 0 ) # Recommended for clarity. $termios->getattr()Получить атрибуты для stdout.
$termios->getattr( 1 )Возвращает
undefпри ошибке. getcc-
Получить значение из поля
c_ccобъектаtermios. Полеc_ccпредставляет собой массив, поэтому необходимо указать индекс.$c_cc[1] = $termios->getcc(1); getcflag-
Получить поле
c_cflagобъектаtermios.$c_cflag = $termios->getcflag; getiflag-
Получить поле
c_iflagобъектаtermios.$c_iflag = $termios->getiflag; getispeed-
Получить скорость передачи данных на вход.
$ispeed = $termios->getispeed; getlflag-
Получить поле
c_lflagобъектаtermios.$c_lflag = $termios->getlflag; getoflag-
Получить поле
c_oflagобъектаtermios.$c_oflag = $termios->getoflag; getospeed-
Получить скорость передачи данных на выход.
$ospeed = $termios->getospeed; setattr-
Установить атрибуты управления терминалом.
Немедленно установить атрибуты для stdout.
$termios->setattr( 1, &POSIX::TCSANOW );Возвращает
undefпри ошибке. setcc-
Установить значение в поле
c_ccобъектаtermios. Полеc_ccпредставляет собой массив, поэтому необходимо указать индекс.$termios->setcc( &POSIX::VEOF, 1 ); setcflag-
Установить поле
c_cflagобъектаtermios.$termios->setcflag( $c_cflag | &POSIX::CLOCAL ); setiflag-
Установить поле
c_iflagобъектаtermios.$termios->setiflag( $c_iflag | &POSIX::BRKINT ); setispeed-
Установить скорость передачи данных на вход.
$termios->setispeed( &POSIX::B9600 );Возвращает
undefпри ошибке. setlflag-
Установить поле
c_lflagобъектаtermios.$termios->setlflag( $c_lflag | &POSIX::ECHO ); setoflag-
Установить поле
c_oflagобъектаtermios.$termios->setoflag( $c_oflag | &POSIX::OPOST ); setospeed-
Установить скорость передачи данных на выход.
$termios->setospeed( &POSIX::B9600 );Возвращает
undefпри ошибке. - Значения скорости передачи данных
-
B38400B75B200B134B300B1800B150B0B19200B1200B9600B600B4800B50B2400B110 - Значения параметров интерфейса терминала
-
TCSADRAINTCSANOWTCOONTCIOFLUSHTCOFLUSHTCIONTCIFLUSHTCSAFLUSHTCIOFFTCOOFF -
Значения поля
c_cc -
VEOFVEOLVERASEVINTRVKILLVQUITVSUSPVSTARTVSTOPVMINVTIMENCCS -
Значения поля
c_cflag -
CLOCALCREADCSIZECS5CS6CS7CS8CSTOPBHUPCLPARENBPARODD -
Значения поля
c_iflag -
BRKINTICRNLIGNBRKIGNCRIGNPARINLCRINPCKISTRIPIXOFFIXONPARMRK -
Значения поля
c_lflag -
ECHOECHOEECHOKECHONLICANONIEXTENISIGNOFLSHTOSTOP -
Значения поля
c_oflag -
OPOST
ПОСТОЯННЫЕ ЗНАЧЕНИЯ ИМЁН ПУТЕЙ
- Постоянные
-
_PC_CHOWN_RESTRICTED_PC_LINK_MAX_PC_MAX_CANON_PC_MAX_INPUT_PC_NAME_MAX_PC_NO_TRUNC_PC_PATH_MAX_PC_PIPE_BUF_PC_VDISABLE
ПОСТОЯННЫЕ ЗНАЧЕНИЯ POSIX
- Постоянные
-
_POSIX_ARG_MAX_POSIX_CHILD_MAX_POSIX_CHOWN_RESTRICTED_POSIX_JOB_CONTROL_POSIX_LINK_MAX_POSIX_MAX_CANON_POSIX_MAX_INPUT_POSIX_NAME_MAX_POSIX_NGROUPS_MAX_POSIX_NO_TRUNC_POSIX_OPEN_MAX_POSIX_PATH_MAX_POSIX_PIPE_BUF_POSIX_SAVED_IDS_POSIX_SSIZE_MAX_POSIX_STREAM_MAX_POSIX_TZNAME_MAX_POSIX_VDISABLE_POSIX_VERSION
ПОСТОЯННЫЕ ЗНАЧЕНИЯ РЕСУРСОВ
Импортировано с помощью тега :sys_resource_h.
- Постоянные
-
Добавлен в Perl v5.28:
PRIO_PROCESSPRIO_PGRPPRIO_USER
НАСТРОЙКА СИСТЕМЫ
- Постоянные
-
_SC_ARG_MAX_SC_CHILD_MAX_SC_CLK_TCK_SC_JOB_CONTROL_SC_NGROUPS_MAX_SC_OPEN_MAX_SC_PAGESIZE_SC_SAVED_IDS_SC_STREAM_MAX_SC_TZNAME_MAX_SC_VERSION
ERRNO
- Постоянные
-
E2BIGEACCESEADDRINUSEEADDRNOTAVAILEAFNOSUPPORTEAGAINEALREADYEBADFEBADMSGEBUSYECANCELEDECHILDECONNABORTEDECONNREFUSEDECONNRESETEDEADLKEDESTADDRREQEDOMEDQUOTEEXISTEFAULTEFBIGEHOSTDOWNEHOSTUNREACHEIDRMEILSEQEINPROGRESSEINTREINVALEIOEISCONNEISDIRELOOPEMFILEEMLINKEMSGSIZEENAMETOOLONGENETDOWNENETRESETENETUNREACHENFILEENOBUFSENODATAENODEVENOENTENOEXECENOLCKENOLINKENOMEMENOMSGENOPROTOOPTENOSPCENOSRENOSTRENOSYSENOTBLKENOTCONNENOTDIRENOTEMPTYENOTRECOVERABLEENOTSOCKENOTSUPENOTTYENXIOEOPNOTSUPPEOTHEREOVERFLOWEOWNERDEADEPERMEPFNOSUPPORTEPIPEEPROCLIMEPROTOEPROTONOSUPPORTEPROTOTYPEERANGEEREMOTEERESTARTEROFSESHUTDOWNESOCKTNOSUPPORTESPIPEESRCHESTALEETIMEETIMEDOUTETOOMANYREFSETXTBSYEUSERSEWOULDBLOCKEXDEV
FCNTL
- Постоянные
-
FD_CLOEXECF_DUPFDF_GETFDF_GETFLF_GETLKF_OKF_RDLCKF_SETFDF_SETFLF_SETLKF_SETLKWF_UNLCKF_WRLCKO_ACCMODEO_APPENDO_CREATO_EXCLO_NOCTTYO_NONBLOCKO_RDONLYO_RDWRO_TRUNCO_WRONLY
FLOAT
- Постоянные
-
DBL_DIGDBL_EPSILONDBL_MANT_DIGDBL_MAXDBL_MAX_10_EXPDBL_MAX_EXPDBL_MINDBL_MIN_10_EXPDBL_MIN_EXPFLT_DIGFLT_EPSILONFLT_MANT_DIGFLT_MAXFLT_MAX_10_EXPFLT_MAX_EXPFLT_MINFLT_MIN_10_EXPFLT_MIN_EXPFLT_RADIXFLT_ROUNDSLDBL_DIGLDBL_EPSILONLDBL_MANT_DIGLDBL_MAXLDBL_MAX_10_EXPLDBL_MAX_EXPLDBL_MINLDBL_MIN_10_EXPLDBL_MIN_EXP
Окружение с плавающей точкой
- Постоянные
-
FE_DOWNWARDFE_TONEARESTFE_TOWARDZEROFE_UPWARDна системах, которые их поддерживают.
Пределы
- Постоянные
-
ARG_MAXCHAR_BITCHAR_MAXCHAR_MINCHILD_MAXINT_MAXINT_MINLINK_MAXLONG_MAXLONG_MINMAX_CANONMAX_INPUTMB_LEN_MAXNAME_MAXNGROUPS_MAXOPEN_MAXPATH_MAXPIPE_BUFSCHAR_MAXSCHAR_MINSHRT_MAXSHRT_MINSSIZE_MAXSTREAM_MAXTZNAME_MAXUCHAR_MAXUINT_MAXULONG_MAXUSHRT_MAX
Локализация
- Постоянные
-
LC_ALLLC_COLLATELC_CTYPELC_MONETARYLC_NUMERICLC_TIMELC_MESSAGESна системах, которые их поддерживают.
МАТЕМАТИКА
- Постоянные
-
HUGE_VALДобавлены в Perl v5.22:
FP_ILOGB0FP_ILOGBNANFP_INFINITEFP_NANFP_NORMALFP_SUBNORMALFP_ZEROINFINITYNANInfNaNM_1_PIM_2_PIM_2_SQRTPIM_EM_LN10M_LN2M_LOG10EM_LOG2EM_PIM_PI_2M_PI_4M_SQRT1_2M_SQRT2на системах с поддержкой C99.
СИГНАЛ
- Постоянные
-
SA_NOCLDSTOPSA_NOCLDWAITSA_NODEFERSA_ONSTACKSA_RESETHANDSA_RESTARTSA_SIGINFOSIGABRTSIGALRMSIGCHLDSIGCONTSIGFPESIGHUPSIGILLSIGINTSIGKILLSIGPIPESIGQUITSIGSEGVSIGSTOPSIGTERMSIGTSTPSIGTTINSIGTTOUSIGUSR1SIGUSR2SIG_BLOCKSIG_DFLSIG_ERRSIG_IGNSIG_SETMASKSIG_UNBLOCKДобавлены в Perl v5.24:
ILL_ILLOPCILL_ILLOPNILL_ILLADRILL_ILLTRPILL_PRVOPCILL_PRVREGILL_COPROCILL_BADSTKFPE_INTDIVFPE_INTOVFFPE_FLTDIVFPE_FLTOVFFPE_FLTUNDFPE_FLTRESFPE_FLTINVFPE_FLTSUBSEGV_MAPERRSEGV_ACCERRBUS_ADRALNBUS_ADRERRBUS_OBJERRTRAP_BRKPTTRAP_TRACECLD_EXITEDCLD_KILLEDCLD_DUMPEDCLD_TRAPPEDCLD_STOPPEDCLD_CONTINUEDPOLL_INPOLL_OUTPOLL_MSGPOLL_ERRPOLL_PRIPOLL_HUPSI_USERSI_QUEUESI_TIMERSI_ASYNCIOSI_MESGQ
СТАТИСТИКА
- Постоянные
-
S_IRGRPS_IROTHS_IRUSRS_IRWXGS_IRWXOS_IRWXUS_ISGIDS_ISUIDS_IWGRPS_IWOTHS_IWUSRS_IXGRPS_IXOTHS_IXUSR - Макросы
-
S_ISBLKS_ISCHRS_ISDIRS_ISFIFOS_ISREG
STDLIB
- Постоянные
-
EXIT_FAILUREEXIT_SUCCESSMB_CUR_MAXRAND_MAX
STDIO
- Постоянные
-
BUFSIZEOFFILENAME_MAXL_ctermidL_cuseridTMP_MAX
ВРЕМЯ
- Постоянные
-
CLK_TCKCLOCKS_PER_SEC
UNISTD
- Постоянные
-
R_OKSEEK_CURSEEK_ENDSEEK_SETSTDIN_FILENOSTDOUT_FILENOSTDERR_FILENOW_OKX_OK
ОЖИДАНИЕ
- Постоянные
-
WNOHANGWUNTRACEDWNOHANG-
Не приостанавливать вызывающий процесс, пока процесс-потомок не изменит состояние, а вместо этого возвращаться немедленно.
WUNTRACED-
Перехватывать остановленные процессы-потомки.
- Макросы
-
WIFEXITEDWEXITSTATUSWIFSIGNALEDWTERMSIGWIFSTOPPEDWSTOPSIGWIFEXITED-
WIFEXITED(${^CHILD_ERROR_NATIVE})возвращает true, если процесс-потомок завершился нормально (exit()или завершился по окончанииmain()). WEXITSTATUS-
WEXITSTATUS(${^CHILD_ERROR_NATIVE})возвращает нормальный код завершения процесса-потомка (имеет смысл только еслиWIFEXITED(${^CHILD_ERROR_NATIVE})равно true). WIFSIGNALED-
WIFSIGNALED(${^CHILD_ERROR_NATIVE})возвращает true, если процесс-потомок завершился из-за сигнала. WTERMSIG-
WTERMSIG(${^CHILD_ERROR_NATIVE})возвращает сигнал, из-за которого завершился процесс-потомок (имеет смысл только еслиWIFSIGNALED(${^CHILD_ERROR_NATIVE})равно true). WIFSTOPPED-
WIFSTOPPED(${^CHILD_ERROR_NATIVE})возвращает true, если процесс-потомок в настоящее время приостановлен (может произойти только если вы указали флаг WUNTRACED дляwaitpid()). WSTOPSIG-
WSTOPSIG(${^CHILD_ERROR_NATIVE})возвращает сигнал, из-за которого был приостановлен процесс-потомок (имеет смысл только еслиWIFSTOPPED(${^CHILD_ERROR_NATIVE})равно true).
WINSOCK
(Только для Windows.)
- Постоянные
-
Добавлены в Perl v5.24:
WSAEINTRWSAEBADFWSAEACCESWSAEFAULTWSAEINVALWSAEMFILEWSAEWOULDBLOCKWSAEINPROGRESSWSAEALREADYWSAENOTSOCKWSAEDESTADDRREQWSAEMSGSIZEWSAEPROTOTYPEWSAENOPROTOOPTWSAEPROTONOSUPPORTWSAESOCKTNOSUPPORTWSAEOPNOTSUPPWSAEPFNOSUPPORTWSAEAFNOSUPPORTWSAEADDRINUSEWSAEADDRNOTAVAILWSAENETDOWNWSAENETUNREACHWSAENETRESETWSAECONNABORTEDWSAECONNRESETWSAENOBUFSWSAEISCONNWSAENOTCONNWSAESHUTDOWNWSAETOOMANYREFSWSAETIMEDOUTWSAECONNREFUSEDWSAELOOPWSAENAMETOOLONGWSAEHOSTDOWNWSAEHOSTUNREACHWSAENOTEMPTYWSAEPROCLIMWSAEUSERSWSAEDQUOTWSAESTALEWSAEREMOTEWSAEDISCONWSAENOMOREWSAECANCELLEDWSAEINVALIDPROCTABLEWSAEINVALIDPROVIDERWSAEPROVIDERFAILEDINITWSAEREFUSED
© 1993–2021 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.34.0/POSIX