POSIX
СОДЕРЖАНИЕ
- ИМЯ
- СИНТАКСИС
- ОПИСАНИЕ
- ЗАМЕЧАНИЯ
- ФУНКЦИИ
- КЛАССЫ
- КОНСТАНТЫ ИМЕНЬ ПУТЕЙ
- КОНСТАНТЫ POSIX
- КОНСТАНТЫ РЕСУРСОВ
- КОНФИГУРАЦИЯ СИСТЕМЫ
- ERRNO
- FCNTL
- FLOAT
- СРЕДА ПЛАВАЮЩЕЙ ТОЧКИ
- ЛИМИТЫ
- ЛОКАЛЬ
- MATH
- СИГНАЛ
- STAT
- STDLIB
- STDIO
- ВРЕМЯ
- UNISTD
- ОЖИДАНИЕ
- 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;
my $sess_id = POSIX::setsid();
my $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] указывает на функции, которые были добавлены в стандарт языка C ISO/IEC 9899:1999. Некоторые из них могут отсутствовать в вашей системе, если она соответствует более раннему стандарту. Попытка использования любой отсутствующей функции приведет к сообщению об ошибке во время выполнения.
ЗАМЕЧАНИЯ
Все по умолчанию экспортируется (с несколькими исключениями). Эта несчастливая функция обратной совместимости и её использование крайне не рекомендуется. Вы должны либо предотвратить экспорт (сказав 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 $max = 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— не число (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. Возвращаемые данные идентичны данным, возвращаемым встроенной функцией Perlstat.$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-ность" с помощью операторов сравнения операторов сравнения (==или!=), как вprint "x is not a NaN\n" if $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-
Не реализовано. (Для возвращения абсолютных значений длинных целых чисел.)
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-
Не реализовано. (Для вычисления частных длинных целых чисел.)
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 и доступны только на системах, поддерживающих их.Значение -1, возвращаемое для числовых записей, указывает, что поле не применимо к данной локали. Это редкое явление, за исключением локалей C и родственных, в которых не определены многие денежные значения. Это также может происходить, как ненормальное поведение, в полях, которые в противном случае являются булевыми, чтобы указать, что значение ни истинно, ни ложно. Это происходит в
p_cs_precedesиint_p_cs_precedes, когда символ валюты не предшествует и не следует за положительным значением, а вставлен, заменяя разделитель десятичных знаков.До Perl v5.37.7, пустые строковые поля и числовые поля со значением -1 были опущены из возвращаемого хеша.
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 или которое может быть преобразовано в неё, возвращаемое значение — количество байт, занимаемых первой буквой этой строки; или 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 или которое может быть преобразовано в неё, возвращаемое значение — количество байт, занимаемых первой буквой этой строки; или 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-
Число, не являющееся числом, как константа:
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 или x86 80-битные long double) доступно соответственно 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(), для изменения приоритета планирования текущего процесса. Положительные аргументы означают более вежливый процесс, отрицательные значения — более нуждающийся процесс. Обычные (не корневые) пользовательские процессы могут изменять только в сторону большей вежливости.Возвращает
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 или на системах, не поддерживающих потокобезопасные операции с локалью, НЕ используйте эту функцию в потоке. Локаль изменится во всех остальных потоках одновременно, и если ваш поток будет приостановлен операционной системой, а другой запущен, у этого потока не будет ожидаемой локали. На некоторых платформах может возникнуть гонка, приводящая к segfaults, если две нити почти одновременно вызовут эту функцию. Это предупреждение не относится к однопоточным сборкам или к 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);Устанавливает
NaNплату var. Добавлен в Perl v5.24.ПРИМЕЧАНИЕ: API платы 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".
Обратите внимание, что из-за того, как работают форматы чисел с плавающей запятой, на большинстве распространённых платформ лучше избегать сигнализирующей платы нуля, так как она может оказаться идентичной
+Inf.См. также "nan", "isnan", "getpayload" и "issignaling".
setpgid-
Это аналогично функции C
setpgid()для установки идентификатора группы процессов текущего процесса.Возвращает
undefпри ошибке. setsid-
Это идентично функции C
setsid()для установки идентификатора сеанса текущего процесса. setuid-
Устанавливает реальный и эффективный идентификатор пользователя для этого процесса. Аналогично присвоению значения встроенной переменной Perl
$<, см. "$UID" в perlvar, за исключением того, что последнее изменит только реальный идентификатор пользователя. sigaction-
Подробное управление сигналами. Для аргументов
POSIX::SigActionиaction(oldaction также может быть просто ссылкой на хеш) используются объектыoldaction. Обратитесь к справочной странице вашей системы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. Обратитесь к справочной странице вашей системыsigpendingдля получения подробной информации.Синопсис:
sigpending(sigset)Возвращает
undefпри ошибке. sigprocmask-
Изменение и/или проверка маски сигналов вызывающего процесса. Для аргументов
POSIX::SigSetиsigsetиспользуются объектыoldsigset. Обратитесь к справочной странице вашей системыsigprocmaskдля получения подробной информации.Синопсис:
sigprocmask(how, sigset, oldsigset = 0)Возвращает
undefпри ошибке.Обратите внимание, что вы не можете надёжно блокировать или разблокировать сигнал из его собственного обработчика сигналов, если вы используете безопасные сигналы. Другие сигналы могут быть заблокированы или разблокированы надёжно.
sigsetjmp-
Не реализовано.
sigsetjmp()— это специфично для C: используйтеeval {}вместо этого, см. "eval" в perlfunc. sigsuspend-
Установка маски сигнала и приостановка процесса до получения сигнала. Для аргумента
POSIX::SigSetиспользуются объектыsignal_mask. Обратитесь к справочной странице вашей системы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 (C99, для большей безопасности). Это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.
В отличие от libc
strxfrm, это позволяет использовать символы NULL в входной$src.Не имеет смысла, чтобы строка была закодирована в одной локали (например, ISO-8859-6, арабский) и сортировалась на основе другой (например, ISO-8859-7, греческий). Perl предполагает, что текущая
LC_CTYPEлокали правильно представляет кодировку$src, и игнорирует значениеLC_COLLATE. 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, который соответствует Cstruct 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 соответствует структуре
termiosC.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
LOCALE
- Константы
-
LC_ALLLC_COLLATELC_CTYPELC_MONETARYLC_NUMERICLC_TIMELC_MESSAGESна системах, которые их поддерживают.
MATH
- Постоянные
-
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.
SIGNAL
- Постоянные
-
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
STAT
- Постоянные
-
S_IRGRPS_IROTHS_IRUSRS_IRWXGS_IRWXOS_IRWXUS_ISGIDS_ISUIDS_IWGRPS_IWOTHS_IWUSRS_IXGRPS_IXOTHS_IXUSR - Макросы
-
S_ISBLKS_ISCHRS_ISDIRS_ISFIFOS_ISLNKS_ISREGS_ISSOCK
STDLIB
- Постоянные
-
EXIT_FAILUREEXIT_SUCCESSMB_CUR_MAXRAND_MAX
STDIO
- Постоянные
-
BUFSIZEOFFILENAME_MAXL_ctermidL_cuseridTMP_MAX
TIME
- Постоянные
-
CLK_TCKCLOCKS_PER_SEC
UNISTD
- Постоянные
-
R_OKSEEK_CURSEEK_ENDSEEK_SETSTDIN_FILENOSTDOUT_FILENOSTDERR_FILENOW_OKX_OK
WAIT
- Постоянные
-
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–2023 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.38.0/POSIX