home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / gnu / man / cat2 / intro.0 < prev    next >
Text File  |  1993-12-07  |  27KB  |  529 lines

  1.  
  2. INTRO(2)                   UNIX Programmer's Manual                   INTRO(2)
  3.  
  4. NNAAMMEE
  5.      iinnttrroo - introduction to system calls and error numbers
  6.  
  7. SSYYNNOOPPSSIISS
  8.      ##iinncclluuddee <<ssyyss//eerrrrnnoo..hh>>
  9.  
  10. DDEESSCCRRIIPPTTIIOONN
  11.      This section provides an overview of the system calls, their error re­
  12.      turns, and other common definitions and concepts.
  13.  
  14. DDIIAAGGNNOOSSTTIICCSS
  15.      Nearly all of the system calls provide an error number in the external
  16.      variable _e_r_r_n_o, which is defined as:
  17.  
  18.            extern int errno
  19.  
  20.      When a system call detects an error, it returns an integer value indicat­
  21.      ing failure (usually ­1) and sets the variable _e_r_r_n_o accordingly.  <This
  22.      allows interpretation of the failure on receiving a ­1 and to take action
  23.      accordingly.> Successful calls never set _e_r_r_n_o; once set, it remains un­
  24.      til another error occurs.  It should only be examined after an error.
  25.      Note that a number of system calls overload the meanings of these error
  26.      numbers, and that the meanings must be interpreted according to the type
  27.      and circumstances of the call.
  28.  
  29.      The following is a complete list of the errors and their names as given
  30.      in <_s_y_s_/_e_r_r_n_o_._h>.
  31.  
  32.      0 _E_r_r_o_r _0. Not used.
  33.  
  34.      1 EPERM _O_p_e_r_a_t_i_o_n _n_o_t _p_e_r_m_i_t_t_e_d _. An attempt was made to perform an oper­
  35.              ation limited to processes with appropriate privileges or to the
  36.              owner of a file or other resources.
  37.  
  38.      2 ENOENT _N_o _s_u_c_h _f_i_l_e _o_r _d_i_r_e_c_t_o_r_y. A component of a specified pathname
  39.              did not exist, or the pathname was an empty string.
  40.  
  41.      3 ESRCH _N_o _s_u_c_h _p_r_o_c_e_s_s. No process could be found corresponding to that
  42.              specified by the given process ID.
  43.  
  44.      4 EINTR _I_n_t_e_r_r_u_p_t_e_d _f_u_n_c_t_i_o_n _c_a_l_l. An asynchronous signal (such as SIGINT
  45.              or SIGQUIT) was caught by the process during the execution of an
  46.              interruptible function. If the signal handler performs a normal
  47.              return, the interupted function call will seem to have returned
  48.              the error condition.
  49.  
  50.      5 EIO _I_n_p_u_t_/_o_u_t_p_u_t _e_r_r_o_r. Some physical input or output error occurred.
  51.              This error not be reported until a subsequent operation on the
  52.              same file descriptor and may be lost (over written) by any subse­
  53.              quent errors.
  54.  
  55.      6 ENXIO _N_o _s_u_c_h _d_e_v_i_c_e _o_r _a_d_d_r_e_s_s. Input or output on a special file re­
  56.              ferred to a device that did not exist, or made a request beyond
  57.              the limits of the device.  This error may also occur when, for
  58.              example, a tape drive is not online or no disk pack is is loaded
  59.              on a drive.
  60.  
  61.      7 E2BIG _A_r_g _l_i_s_t _t_o_o _l_o_n_g. The number of bytes used for the argument and
  62.              environment list of the new process exceeded the current limit of
  63.              20480 bytes (NCARGS in <_s_y_s_/_p_a_r_a_m_._h>).
  64.  
  65.      8 ENOEXEC _E_x_e_c _f_o_r_m_a_t _e_r_r_o_r. A request was made to execute a file that,
  66.              although it has the appropriate permissions, was not in the for­
  67.              mat required for an executable file.
  68.  
  69.      9 EBADF _B_a_d _f_i_l_e _d_e_s_c_r_i_p_t_o_r. A file descriptor argument was out of range,
  70.              referred to no open file, or a read (write) request was made to a
  71.              file that was only open for writing (reading).
  72.  
  73.      10 ECHILD _N_o _c_h_i_l_d _p_r_o_c_e_s_s_e_s. A wait or waitpid function was executed by
  74.              a process that had no existing or unwaited­for child processes.
  75.  
  76.      11 EDEADLK _R_e_s_o_u_r_c_e _d_e_a_d_l_o_c_k _a_v_o_i_d_e_d. An attempt was made to lock a sys­
  77.              tem resource that would have resulted in a deadlock situation.
  78.  
  79.      12 ENOMEM _C_a_n_n_n_o_t _a_l_l_o_c_a_t_e _m_e_m_o_r_y. The new process image required more
  80.              memory than was allowed by the hardware or by system­imposed mem­
  81.              ory management constraints.  A lack of swap space is normally
  82.              temporary; however, a lack of core is not.  Soft limits may be
  83.              increased to their corresponding hard limits.
  84.  
  85.      13 EACCES _P_e_r_m_i_s_s_i_o_n _d_e_n_i_e_d. An attempt was made to access a file in a
  86.              way forbidden by its file access permissions.
  87.  
  88.      14 EFAULT _B_a_d _a_d_d_r_e_s_s. The system detected an invalid address in attempt­
  89.              ing to use an argument of a call.
  90.  
  91.      15 ENOTBLK _N_o_t _a _b_l_o_c_k _d_e_v_i_c_e. A block device operation was attempted on
  92.              a non­block device or file.
  93.  
  94.      16 EBUSY _R_e_s_o_u_r_c_e _b_u_s_y. An attempt to use a system resource which was in
  95.              use at the time in a manner which would have conflicted with the
  96.              request.
  97.  
  98.      17 EEXIST _F_i_l_e _e_x_i_s_t_s. An existing file was mentioned in an inappropriate
  99.              context, for instance, as the new link name in a link function.
  100.  
  101.      18 EXDEV _I_m_p_r_o_p_e_r _l_i_n_k. A hard link to a file on another file system was
  102.              attempted.
  103.  
  104.      19 ENODEV _O_p_e_r_a_t_i_o_n _n_o_t _s_u_p_p_o_r_t_e_d _b_y _d_e_v_i_c_e. An attempt was made to apply
  105.              an inappropriate function to a device, for example, trying to
  106.              read a write­only device such as a printer.
  107.  
  108.      20 ENOTDIR _N_o_t _a _d_i_r_e_c_t_o_r_y. A component of the specified pathname exist­
  109.              ed, but it was not a directory, when a directory was expected.
  110.  
  111.      21 EISDIR _I_s _a _d_i_r_e_c_t_o_r_y. An attempt was made to open a directory with
  112.              write mode specified.
  113.  
  114.      22 EINVAL _I_n_v_a_l_i_d _a_r_g_u_m_e_n_t. Some invalid argument was supplied. (For ex­
  115.              ample, specifying an undefined signal to a signal or kill func­
  116.              tion).
  117.  
  118.      23 ENFILE _T_o_o _m_a_n_y _o_p_e_n _f_i_l_e_s _i_n _s_y_s_t_e_m. Maximum number of file descrip­
  119.              tors allowable on the system has been reached and a requests for
  120.              an open cannot be satisfied until at least one has been closed.
  121.  
  122.      24 EMFILE _T_o_o _m_a_n_y _o_p_e_n _f_i_l_e_s. <As released, the limit on the number of
  123.              open files per process is 64.> Getdtablesize(2) will obtain the
  124.              current limit.
  125.  
  126.      25 ENOTTY _I_n_a_p_p_r_o_p_r_i_a_t_e _i_o_c_t_l _f_o_r _d_e_v_i_c_e. A control function (see
  127.              ioctl(2))  was attempted for a file or special device for which
  128.              the operation was inappropriate.
  129.  
  130.      26 ETXTBSY _T_e_x_t _f_i_l_e _b_u_s_y. The new process was a pure procedure (shared
  131.              text) file which was open for writing by another process, or the
  132.              pure procedure file was being executed an open call requested
  133.              write access.
  134.  
  135.      27 EFBIG _F_i_l_e _t_o_o _l_a_r_g_e. The size of a file exceeded the maximum (about
  136.              2.1E9 bytes).
  137.  
  138.      28 ENOSPC _D_e_v_i_c_e _o_u_t _o_f _s_p_a_c_e. A write to an ordinary file, the creation
  139.              of a directory or symbolic link, or the creation of a directory
  140.              entry failed because no more disk blocks are available on the
  141.              file system, or the allocation of an inode for a newly created
  142.              file failed because no more inodes are available on the file sys­
  143.              tem.
  144.  
  145.      29 ESPIPE _I_l_l_e_g_a_l _s_e_e_k. An lseek function was issued on a socket, pipe or
  146.              FIFO.
  147.  
  148.      30 EROFS _R_e_a_d_­_o_n_l_y _f_i_l_e _s_y_s_t_e_m. An attempt was made to modify a file or
  149.              direc