Spec-Zone.ru › Perl 5.38

POSIX

СОДЕРЖАНИЕ

  • ИМЯ
  • СИНТАКСИС
  • ОПИСАНИЕ
  • ЗАМЕЧАНИЯ
  • ФУНКЦИИ
  • КЛАССЫ
    • POSIX::SigAction
    • POSIX::SigRt
    • POSIX::SigSet
    • POSIX::Termios
  • КОНСТАНТЫ ИМЕНЬ ПУТЕЙ
  • КОНСТАНТЫ 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. Значение $year 1900-индексированное: 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_DOWNWARD

FE_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. Возвращаемые данные идентичны данным, возвращаемым встроенной функцией 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-ность" с помощью операторов сравнения операторов сравнения (== или !=), как в

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.

j0
j1
jn
y0
y1
yn

Функция Бесселя первого рода нулевого порядка.

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
END_OF_DOCUMENT_MARKER

Получение информации о числовом формате. Возвращает ссылку на хеш, содержащий значения форматирования для текущего локали, используемого программой, независимо от того, вызывается ли он из области 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.

См. также "ceil", "floor", "lround", "modf" и "trunc".

scalbn

Возвращает x * 2**y [C99]. Добавлен в Perl v5.22.

См. также "frexp" и "ldexp".

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 учитывает любые настройки POSIX setlocale() 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.

См. также "ceil", "floor" и "round".

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().

handler
mask
flags

Функции доступа для получения/установки значений объекта 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 соответствует структуре termios C. 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 при ошибке.

Значения скорости передачи данных

B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110

Значения интерфейса терминала

TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF

Значения поля c_cc

VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS

Значения поля c_cflag

CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD

Значения поля c_iflag

BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK

Значения поля c_lflag

ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP

Значения поля 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_PROCESS PRIO_PGRP PRIO_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

Константы

E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF EBADMSG EBUSY ECANCELED ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EIDRM EILSEQ EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODATA ENODEV ENOENT ENOEXEC ENOLCK ENOLINK ENOMEM ENOMSG ENOPROTOOPT ENOSPC ENOSR ENOSTR ENOSYS ENOTBLK ENOTCONN ENOTDIR ENOTEMPTY ENOTRECOVERABLE ENOTSOCK ENOTSUP ENOTTY ENXIO EOPNOTSUPP EOTHER EOVERFLOW EOWNERDEAD EPERM EPFNOSUPPORT EPIPE EPROCLIM EPROTO EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIME ETIMEDOUT ETOOMANYREFS ETXTBSY EUSERS EWOULDBLOCK EXDEV

FCNTL

Константы

FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_OK F_RDLCK F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC O_WRONLY

FLOAT

Константы

DBL_DIG DBL_EPSILON DBL_MANT_DIG DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP FLT_DIG FLT_EPSILON FLT_MANT_DIG FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX FLT_ROUNDS LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP

СРЕДА ПЛАВАЮЩЕЙ ТОЧКИ

Константы

FE_DOWNWARD FE_TONEAREST FE_TOWARDZERO FE_UPWARD на системах, которые их поддерживают.

ГРАНИЦЫ

Константы

ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX

LOCALE

Константы

LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME LC_MESSAGES на системах, которые их поддерживают.

MATH

Постоянные

HUGE_VAL

Добавлены в Perl v5.22:

FP_ILOGB0 FP_ILOGBNAN FP_INFINITE FP_NAN FP_NORMAL FP_SUBNORMAL FP_ZERO INFINITY NAN Inf NaN M_1_PI M_2_PI M_2_SQRTPI M_E M_LN10 M_LN2 M_LOG10E M_LOG2E M_PI M_PI_2 M_PI_4 M_SQRT1_2 M_SQRT2 на системах с поддержкой C99.

SIGNAL

Постоянные

SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK SIG_UNBLOCK

Добавлены в Perl v5.24:

ILL_ILLOPC ILL_ILLOPN ILL_ILLADR ILL_ILLTRP ILL_PRVOPC ILL_PRVREG ILL_COPROC ILL_BADSTK FPE_INTDIV FPE_INTOVF FPE_FLTDIV FPE_FLTOVF FPE_FLTUND FPE_FLTRES FPE_FLTINV FPE_FLTSUB SEGV_MAPERR SEGV_ACCERR BUS_ADRALN BUS_ADRERR BUS_OBJERR TRAP_BRKPT TRAP_TRACE CLD_EXITED CLD_KILLED CLD_DUMPED CLD_TRAPPED CLD_STOPPED CLD_CONTINUED POLL_IN POLL_OUT POLL_MSG POLL_ERR POLL_PRI POLL_HUP SI_USER SI_QUEUE SI_TIMER SI_ASYNCIO SI_MESGQ

STAT

Постоянные

S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR

Макросы

S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISLNK S_ISREG S_ISSOCK

STDLIB

Постоянные

EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX

STDIO

Постоянные

BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid TMP_MAX

TIME

Постоянные

CLK_TCK CLOCKS_PER_SEC

UNISTD

Постоянные

R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STDERR_FILENO W_OK X_OK

WAIT

Постоянные

WNOHANG WUNTRACED

WNOHANG

Не приостанавливать вызывающий процесс до изменения состояния дочернего процесса, а вместо этого возвращаться немедленно.

WUNTRACED

Перехватывать остановленные дочерние процессы.

Макросы

WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG

WIFEXITED

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:

WSAEINTR WSAEBADF WSAEACCES WSAEFAULT WSAEINVAL WSAEMFILE WSAEWOULDBLOCK WSAEINPROGRESS WSAEALREADY WSAENOTSOCK WSAEDESTADDRREQ WSAEMSGSIZE WSAEPROTOTYPE WSAENOPROTOOPT WSAEPROTONOSUPPORT WSAESOCKTNOSUPPORT WSAEOPNOTSUPP WSAEPFNOSUPPORT WSAEAFNOSUPPORT WSAEADDRINUSE WSAEADDRNOTAVAIL WSAENETDOWN WSAENETUNREACH WSAENETRESET WSAECONNABORTED WSAECONNRESET WSAENOBUFS WSAEISCONN WSAENOTCONN WSAESHUTDOWN WSAETOOMANYREFS WSAETIMEDOUT WSAECONNREFUSED WSAELOOP WSAENAMETOOLONG WSAEHOSTDOWN WSAEHOSTUNREACH WSAENOTEMPTY WSAEPROCLIM WSAEUSERS WSAEDQUOT WSAESTALE WSAEREMOTE WSAEDISCON WSAENOMORE WSAECANCELLED WSAEINVALIDPROCTABLE WSAEINVALIDPROVIDER WSAEPROVIDERFAILEDINIT WSAEREFUSED

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API