Annotation of researchv10dc/dist/man/v4/man2/intro, revision 1.1

1.1     ! root        1: .th INTRO II 11/5/73
        !             2: .de pg
        !             3: .sp
        !             4: ..
        !             5: .de en
        !             6: .pg
        !             7: .in 3
        !             8: .ti 0
        !             9: \\$1\t\\$2\t\\$3
        !            10: .br
        !            11: ..
        !            12: .sp 2
        !            13: .in 0
        !            14: .if t .ta 3  10
        !            15: .ce
        !            16: INTRODUCTION TO SYSTEM CALLS
        !            17: .sp
        !            18: Section II of this manual
        !            19: lists all the entries into the system.
        !            20: In most cases two calling sequences are specified,
        !            21: one of which is usable from assembly language, and the other from C.
        !            22: Most of these calls have an error return.
        !            23: From assembly language an erroneous call is always
        !            24: indicated by turning on the c-bit of the condition codes.
        !            25: The presence of an error is most easily tested
        !            26: by the instructions
        !            27: .it bes
        !            28: and
        !            29: .it bec
        !            30: (``branch on error set (or clear)'').
        !            31: These are synonyms for
        !            32: the
        !            33: .it bcs
        !            34: and
        !            35: .it bcc
        !            36: instructions.
        !            37: .pg
        !            38: From C, an error condition is indicated by an otherwise
        !            39: impossible returned value.
        !            40: Almost always this is \(mi1;
        !            41: the individual sections specify the details.
        !            42: .pg
        !            43: In both cases an error number is also available.
        !            44: In assembly language,
        !            45: this number is returned in r0 on erroneous calls.
        !            46: From C,
        !            47: the external variable
        !            48: .it errno
        !            49: is set to the error number.
        !            50: .it Errno
        !            51: is not cleared on succesful calls, so it should be tested only
        !            52: after an error has occurred.
        !            53: There is a table of messages
        !            54: associated with each error, and a routine for printing the
        !            55: message.
        !            56: See
        !            57: .it "perror (III)."
        !            58: .pg
        !            59: The possible error numbers
        !            60: are not recited with each writeup in section II, since many
        !            61: errors are possible for most of the calls.
        !            62: Here is a list of the error numbers,
        !            63: their names inside the system (for the benefit of
        !            64: system-readers),
        !            65: and the messages available using
        !            66: .it perror.
        !            67: A short explanation is also provided.
        !            68: .en 0 \(mi (unused)
        !            69: .en 1 EPERM "Not owner and not super-user"
        !            70: Typically this error indicates
        !            71: an attempt to modify a file in some way forbidden
        !            72: except to its owner.
        !            73: It is also returned for attempts
        !            74: by ordinary users to do things
        !            75: allowed only to the super-user.
        !            76: .en 2 ENOENT "No such file or directory"
        !            77: This error occurs when a file name is specified
        !            78: and the file should exist but doesn't, or when one
        !            79: of the directories in a path name does not exist.
        !            80: .en 3 ESRCH "No such process"
        !            81: The process whose number was given to
        !            82: .it signal
        !            83: does not exist, or is already dead.
        !            84: .en 4 \(mi (unused)
        !            85: .en 5 EIO "I/O error"
        !            86: Some physical I/O error occurred during a
        !            87: .it read
        !            88: or
        !            89: .it write.
        !            90: This error may in some cases occur
        !            91: on a call following the one to which it actually applies.
        !            92: .en 6 ENXIO "No such device or address"
        !            93: I/O on a special file refers to a subdevice which does not
        !            94: exist,
        !            95: or beyond the limits of the device.
        !            96: It may also occur when, for example, a tape drive
        !            97: is not dialled in or no disk pack is loaded on a drive.
        !            98: .en 7 E2BIG "Arg list too long"
        !            99: An argument list longer than 512 bytes
        !           100: (counting the null at the end of each argument)
        !           101: is presented to
        !           102: .it exec.
        !           103: .en 8 ENOEXEC "Exec format error"
        !           104: A request is made to execute a file
        !           105: which, although it has the appropriate permissions,
        !           106: does not start with one of the magic numbers
        !           107: 407 or 410.
        !           108: .en 9 EBADF "Bad file number"
        !           109: Either a file descriptor refers to no
        !           110: open file,
        !           111: or a read (resp. write) request is made to
        !           112: a file which is open only for writing (resp. reading).
        !           113: .en 10 ECHILD "No children"
        !           114: .it Wait
        !           115: and the process has no
        !           116: living or unwaited-for children.
        !           117: .en 11 EAGAIN "No more processes"
        !           118: In a
        !           119: .it fork,
        !           120: the system's process table is full and no
        !           121: more processes can for the moment be created.
        !           122: .en 12 ENOMEM "Not enough core"
        !           123: During an
        !           124: .it exec
        !           125: or
        !           126: .it break,
        !           127: a program asks for more core than the system is able to supply.
        !           128: This is not a temporary condition; the maximum core size
        !           129: is a system parameter.
        !           130: The error may also occur if the arrangement
        !           131: of text, data, and stack segments is such as to
        !           132: require more than the existing 8 segmentation registers.
        !           133: .en 13 EACCES "Permission denied"
        !           134: An attempt was made to access a file in a way forbidden
        !           135: by the protection system.
        !           136: .en 14 \(mi (unused)
        !           137: .en 15 ENOTBLK "Block device required"
        !           138: A plain file was mentioned where a block device was required,
        !           139: e.g. in
        !           140: .it mount.
        !           141: .en 16 EBUSY "Mount device busy"
        !           142: An attempt was made to dismount a device
        !           143: on which there is an open file or some process's current
        !           144: directory.
        !           145: .en 17 EEXIST "File exists"
        !           146: In existing file was mentioned in a context in which
        !           147: it should not have,
        !           148: e.g.
        !           149: .it link.
        !           150: .en 18 EXDEV "Cross-device link"
        !           151: A link to a file on another device
        !           152: was attempted.
        !           153: .en 19 ENODEV "No such device"
        !           154: An attempt was made to apply an inappropriate
        !           155: system call to a device;
        !           156: e.g. read a write-only device.
        !           157: .en 20 ENOTDIR "Not a directory"
        !           158: A non-directory was specified where a directory
        !           159: is required,
        !           160: for example in a path name or
        !           161: as an argument to
        !           162: .it chdir.
        !           163: .en 21 EISDIR "Is a directory"
        !           164: An attempt to write on a directory.
        !           165: .en 22 EINVAL "Invalid argument"
        !           166: Some invalid argument:
        !           167: currently, dismounting a non-mounted
        !           168: device,
        !           169: mentioning an unknown signal in
        !           170: .it signal,
        !           171: and giving an unknown request in
        !           172: .it stty
        !           173: to the TIU special file.
        !           174: .en 23 ENFILE "File table overflow"
        !           175: The system's table of open files is full,
        !           176: and temporarily no more
        !           177: .it opens
        !           178: can be accepted.
        !           179: .en 24 EMFILE "Too many open files"
        !           180: Only 10 files can be open per process;
        !           181: this error occurs when the eleventh is opened.
        !           182: .en 25 ENOTTY "Not a typewriter"
        !           183: The file mentioned in
        !           184: .it stty
        !           185: or
        !           186: .it gtty
        !           187: is not a typewriter or one of the other
        !           188: devices to which these calls apply.
        !           189: .en 26 ETXTBSY "Text file busy"
        !           190: An attempt to execute a pure-procedure
        !           191: program which is currently open for writing
        !           192: (or reading!).
        !           193: .en 27 EFBIG "File too large"
        !           194: An attempt to make a file larger than the maximum of 2048 blocks.
        !           195: .en 28 ENOSPC "No space left on device"
        !           196: During a
        !           197: .it write
        !           198: to an ordinary file,
        !           199: there is no free space left on the device.
        !           200: .en 29 ESPIPE "Seek on pipe"
        !           201: A
        !           202: .it seek
        !           203: was issued to a pipe.
        !           204: This error should also be issued for
        !           205: other non-seekable devices.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.