Implements the ioctl(2) function. You'll probably first have to say

ioctl(2) ��∽�違��絎�茖������障����� 罩c�������∽�違�勐��臂í��緇������������˨����������������������

    require "sys/";  # probably in
                             # $Config{archlib}/sys/

to get the correct function definitions. If sys/ doesn't exist or doesn't have the correct definitions you'll have to roll your own, based on your C header files such as <sys/ioctl.h>. (There is a Perl script called h2ph that comes with the Perl kit that may help you in this, but it's nontrivial.) SCALAR will be read and/or written depending on the FUNCTION; a C pointer to the string value of SCALAR will be passed as the third argument of the actual ioctl call. (If SCALAR has no string value but does have a numeric value, that value will be passed rather than a pointer to the string value. To guarantee this to be true, add a 0 to the scalar before using it.) The pack and unpack functions may be needed to manipulate the values of structures used by ioctl.

��������ŝ����⓾�壔�ŝ����ŝ����с����������� sys/ �����ŝ����������������c��絎�臂í�������⓾�������翫����˨�壔�� <sys/ioctl.h>��勉�������� C ��勉�������������<�ゃ�˨����������˨�� ��ɱ����т�������ŝ�������違�ŝ����障�������� (Perl ��勰��絽���㏍����������ャ�c�⓾����� h2ph ��������� Perl ��鴻�壔�ŝ�������� ��������������í�������⓾����������с����������������������虁�ʋ����с�壔�������障��������) FOUNCTION ���綽������� SCALAR ���茯㏍�炊�吾����������障��; SCALAR ��勖��絖������ゃ�吾�勉����ゃ�潟�帥�����絎������ ioctl ��潟�若�˨� 3 ��ɾ�勉�勐����違�������〠検��������障����� (SCALAR ������絖������ゃ�������c�⓾�������������医�ゃ�������c�⓾�������翫����˨�壔�� ���絖������ゃ�吾�勉����ゃ�潟�帥�勌撮��������˨�������勐�ゃ��羝<�������障����� �����勉��������篆�荐若�������������˨�壔��篏睡�������������� SCALAR ���0 ���莇潟����⓾��������������) ioctl ��т戎���������罕����篏���勐�ゃ�� ���篏���������˨�壔��pack ��∽�違� unpack ��∽�違��綽�荀������ŝ����с�����������

The return value of ioctl (and fcntl) is as follows:

ioctl (��� fcntl) ��勤�������ゃ�壔�� 篁ヤ����勉�������˨�ŝ����障��:

    if OS returns:      then Perl returns:
        -1               undefined value
         0              string "0 but true"
    anything else           that number
    OS ���菴����������:      Perl ���菴�������:
        -1               ��ɱ��臂ï�
         0               ���0 ��������������勖��絖����
    �����勌��                  �����勐�ゃ����勉����

Thus Perl returns true on success and false on failure, yet you can still easily determine the actual value returned by the operating system:

��ゃ�障�� Perl ��壔�������������˨�����������紊掩�������˨����純�����菴���� ��������˨�ŝ�����OS ���絎������̬����������ゃ�����篁ヤ����勉�������̥亜�����̥�ャ�������������с����障�����

    my $retval = ioctl(...) || -1;
    printf "System returned %d\n", $retval;

The special string "0 but true" is exempt from Argument "..." isn't numeric warnings on improper numeric conversions.

��劫�ャ�ʋ��絖���� "0 ���������" ��壔��筝���ï����ʋ�医�ゅ�������̹�≪����� Argument "..." isn't numeric warnings 茘☗����������帥����障�����

Portability issues: "ioctl" in perlport.

腱紙����с�勐�馹�: "ioctl" in perlport���