Errno Values for UNIX-Type Functions

Programs using the UNIX®-type functions may receive error information as errno values. The possible values returned are listed here in ascending errno value sequence.

Name Value Text Details
EDOM 3001 A domain error occurred in a math function.  
ERANGE 3002 A range error occurred.  
ETRUNC 3003 Data was truncated on an input, output, or update operation.  
ENOTOPEN 3004 File is not open. You attempted to do an operation that required the file to be open.
ENOTREAD 3005 File is not opened for read operations. You tried to read a file that is not open for read operations.
EIO 3006 Input/output error. A physical I/O error occurred or a referenced object was damaged.
ENODEV 3007 No such device.  
ERECIO 3008 Cannot get single character for files opened for record I/O. The file that was specified is open for record I/O and you attempted to read it as a stream file.
ENOTWRITE 3009 File is not opened for write operations. You tried to update a file that has not been opened for write operations.
ESTDIN 3010 The stdin stream cannot be opened.  
ESTDOUT 3011 The stdout stream cannot be opened.  
ESTDERR 3012 The stderr stream cannot be opened.  
EBADSEEK 3013 The positioning parameter in fseek is not correct.  
EBADNAME 3014 The object name specified is not correct.  
EBADMODE 3015 The type variable specified on the open function is not correct. The mode that you attempted to open the file in is not correct.
EBADPOS 3017 The position specifier is not correct.  
ENOPOS 3018 There is no record at the specified position. You attempted to position to a record that does not exist in the file.
ENUMMBRS 3019 Attempted to use ftell on multiple members. Remove all but one member from the file.
ENUMRECS 3020 The current record position is too long for ftell.  
EINVAL 3021 The value specified for the argument is not correct. A function was passed incorrect argument values, or an operation was attempted on an object and the operation specified is not supported for that type of object.
EBADFUNC 3022 Function parameter in the signal function is not set.  
ENOENT 3025 No such path or directory. The directory or a component of the path name specified does not exist.
ENOREC 3026 Record is not found.  
EPERM 3027 The operation is not permitted. You must have appropriate privileges or be the owner of the object or other resource to do the requested operation.
EBADDATA 3028 Message data is not valid. The message data that was specified for the error text is not correct.
EBUSY 3029 Resource busy. An attempt was made to use a system resource that is not available at this time.
EBADOPT 3040 Option specified is not valid.  
ENOTUPD 3041 File is not opened for update operations.  
ENOTDLT 3042 File is not opened for delete operations.  
EPAD 3043 The number of characters written is shorter than the expected record length. The length of the record is longer than the buffer size that was specified. The data written was padded to the length of the record.
EBADKEYLN 3044 A length that was not valid was specified for the key. You attempted a record I/O against a keyed file. The key length that was specified is not correct.
EPUTANDGET 3080 A write operation should not immediately follow a read operation.  
EGETANDPUT 3081 A read operation should not immediately follow a write operation.  
EIOERROR 3101 A nonrecoverable I/O error occurred.  
EIORECERR 3102 A recoverable I/O error occurred.  
EACCES 3401 Permission denied. An attempt was made to access an object in a way forbidden by its object access permissions.
ENOTDIR 3403 Not a directory. A component of the specified path name existed, but it was not a directory when a directory was expected.
ENOSPC 3404 No space is available. The requested operations required additional space on the device and there is no space left. This could also be caused by exceeding the user profile storage limit when creating or transferring ownership of an object.
EXDEV 3405 Improper link. A link to a file on another file system was attempted.
EAGAIN 3406 Operation would have caused the process to be suspended.  
EWOULDBLOCK 3406 Operation would have caused the process to be suspended.  
EINTR 3407 Interrupted function call.  
EFAULT 3408 The address used for an argument was not correct. In attempting to use an argument in a call, the system detected an address that is not valid.
ETIME 3409 Operation timed out.  
ENXIO 3415 No such device or address.  
ECLOSED 3417 Socket closed.
EAPAR 3418 Possible APAR condition or hardware failure.  
ERECURSE 3419 Recursive attempt rejected.  
EADDRINUSE 3420 Address already in use.  
EADDRNOTAVAIL 3421 Address is not available.  
EAFNOSUPPORT 3422 The type of socket is not supported in this protocol family.  
EALREADY 3423 Operation is already in progress.  
ECONNABORTED 3424 Connection ended abnormally.  
ECONNREFUSED 3425 A remote host refused an attempted connect operation.  
ECONNRESET 3426 A connection with a remote socket was reset by that socket.  
EDESTADDRREQ 3427 Operation requires destination address.  
EHOSTDOWN 3428 A remote host is not available.  
EHOSTUNREACH 3429 A route to the remote host is not available.  
EINPROGRESS 3430 Operation in progress.  
EISCONN 3431 A connection has already been established.  
EMSGSIZE 3432 Message size is out of range.  
ENETDOWN 3433 The network is currently not available.  
ENETRESET 3434 A socket is connected to a host that is no longer available.  
ENETUNREACH 3435 Cannot reach the destination network.  
ENOBUFS 3436 There is not enough buffer space for the requested operation.  
ENOPROTOOPT 3437 The protocol does not support the specified option.  
ENOTCONN 3438 Requested operation requires a connection.  
ENOTSOCK 3439 The specified descriptor does not reference a socket.  
ENOTSUP 3440 Operation is not supported. The operation, though supported in general, is not supported for the requested object or the requested arguments.
EOPNOTSUPP 3440 Operation is not supported. The operation, though supported in general, is not supported for the requested object or the requested arguments.
EPFNOSUPPORT 3441 The socket protocol family is not supported.  
EPROTONOSUPPORT 3442 No protocol of the specified type and domain exists.  
EPROTOTYPE 3443 The socket type or protocols are not compatible.  
ERCVDERR 3444 An error indication was sent by the peer program.  
ESHUTDOWN 3445 Cannot send data after a shutdown.  
ESOCKTNOSUPPORT 3446 The specified socket type is not supported.  
ETIMEDOUT 3447 A remote host did not respond within the timeout period.  
EUNATCH 3448 The protocol required to support the specified address family is not available at this time.  
EBADF 3450 Descriptor is not valid. A file descriptor argument was out of range, referred to a file that was not open, or a read or write request was made to a file that is not open for that operation.
EMFILE 3452 Too many open files for this process. An attempt was made to open more files than allowed by the value of OPEN_MAX. The value of OPEN_MAX can be retrieved using the sysconf() function.
ENFILE 3453 Too many open files in the system. A system limit has been reached for the number of files that are allowed to be concurrently open in the system.
EPIPE 3455 Broken pipe.  
ECANCEL 3456 Operation cancelled.  
EEXIST 3457 Object exists. The object specified already exists and the specified operation requires that it not exist.
EDEADLK 3459 Resource deadlock avoided. An attempt was made to lock a system resource that would have resulted in a deadlock situation. The lock was not obtained.
ENOMEM 3460 Storage allocation request failed. A function needed to allocate storage, but no storage is available.
EOWNERTERM 3462 The synchronization object no longer exists because the owner is no longer running. The process that had locked the mutex is no longer running, so the mutex was deleted.
EDESTROYED 3463 The synchronization object was destroyed, or the object no longer exists.  
ETERM 3464 Operation was terminated.  
ENOENT1 3465 No such file or directory. A component of a specified path name did not exist, or the path name was an empty string.
ENOEQFLOG 3466 Object is already linked to a dead directory. The link as a dead option was specified, but the object is already marked as dead. Only one dead link is allowed for an object.
EEMPTYDIR 3467 Directory is empty. A directory with entries of only dot and dot-dot was supplied when a nonempty directory was expected.
EMLINK 3468 Maximum link count for a file was exceeded. An attempt was made to have the link count of a single file exceed LINK_MAX. The value of LINK_MAX can be determined using the pathconf() or the fpathconf() function.
ESPIPE 3469 Seek request is not supported for object. A seek request was specified for an object that does not support seeking.
ENOSYS 3470 Function not implemented. An attempt was made to use a function that is not available in this implementation for any object or any arguments.
EISDIR 3471 Specified target is a directory. The path specified named a directory where a file or object name was expected.
EROFS 3472 Read-only file system. You have attempted an update operation in a file system that only supports read operations.
EC2 3473 C2 pointer validation error.  
EUNKNOWN 3474 Unknown system state. The operation failed because of an unknown system state. See any messages in the job log and correct any errors that are indicated, then retry the operation.
EITERBAD 3475 Iterator is not valid.  
EITERSTE 3476 Iterator is in wrong state for operation.  
EHRICLSBAD 3477 HRI class is not valid.  
EHRICLBAD 3478 HRI subclass is not valid.  
EHRITYPBAD 3479 HRI type is not valid.  
ENOTAPPL 3480 Data requested is not applicable.  
EHRIREQTYP 3481 HRI request type is not valid.  
EHRINAMEBAD 3482 HRI resource name is not valid.  
EDAMAGE 3484 A damaged object was encountered.  
ELOOP 3485 A loop exists in the symbolic links. This error is issued if the number of symbolic links encountered is more than POSIX_SYMLOOP (defined in the limits.h header file). Symbolic links are encountered during resolution of the directory or path name.
ENAMETOOLONG 3486 A path name is too long. A path name is longer than PATH_MAX characters or some component of the name is longer than NAME_MAX characters while _POSIX_NO_TRUNC is in effect. For symbolic links, the length of the name string substituted for a symbolic link exceeds PATH_MAX. The PATH_MAX and NAME_MAX values can be determined using the pathconf() function.
ENOLCK 3487 No locks are available. A system-imposed limit on the number of simultaneous file and record locks was reached, and no more were available at that time.
ENOTEMPTY 3488 Directory is not empty. You tried to remove a directory that is not empty. A directory cannot contain objects when it is being removed.
ENOSYSRSC 3489 System resources are not available.  
ECONVERT 3490 Conversion error. One or more characters could not be converted from the source CCSID to the target CCSID.
E2BIG 3491 Argument list is too long.  
EILSEQ 3492 Conversion stopped due to input character that does not belong to the input codeset.  
ETYPE 3493 Object type mismatch. The type of the object referenced by a descriptor does not match the type specified on the interface.
EBADDIR 3494 Attempted to reference a directory that was not found or was destroyed.  
EBADOBJ 3495 Attempted to reference an object that was not found, was destroyed, or was damaged.  
EIDXINVAL 3496 Data space index used as a directory is not valid.  
ESOFTDAMAGE 3497 Object has soft damage.  
ENOTENROLL 3498 User is not enrolled in system distribution directory. You attempted to use a function that requires you to be enrolled in the system distribution directory and you are not.
EOFFLINE 3499 Object is suspended. You have attempted to use an object that has had its data saved and the storage associated with it freed. An attempt to retrieve the object's data failed. The object's data cannot be used until it is successfully restored. The object's data was saved and freed either by saving the object with the STG(*FREE) parameter, or by calling an API.
EROOBJ 3500 Object is read-only. You have attempted to update an object that can be read only.
EEAHDDSI 3501 Hard damage on extended attribute data space index.  
EEASDDSI 3502 Soft damage on extended attribute data space index.  
EEAHDDS 3503 Hard damage on extended attribute data space.  
EEASDDS 3504 Soft damage on extended attribute data space.  
EEADUPRC 3505 Duplicate extended attribute record.  
ELOCKED 3506 Area being read from or written to is locked. The read or write of an area conflicts with a lock held by another process.
EFBIG 3507 Object too large. The size of the object would exceed the system allowed maximum size.
EIDRM 3509 The semaphore, shared memory, or message queue identifier is removed from the system.  
ENOMSG 3510 The queue does not contain a message of the desired type and (msgflg logically ANDed with IPC_NOWAIT).  
EFILECVT 3511 File ID conversion of a directory failed. To recover from this error, run the Reclaim Storage (RCLSTG) command as soon as possible.
EBADFID 3512 A file ID could not be assigned when linking an object to a directory. The file ID table is missing or damaged. To recover from this error, run the Reclaim Storage (RCLSTG) command as soon as possible.
ESTALE 3513 File or object handle rejected by server.  
ESRCH 3515 No such process.  
ENOTSIGINIT 3516 Process is not enabled for signals. An attempt was made to call a signal function under one of the following conditions:
  • The signal function is being called for a process that is not enabled for asynchronous signals.
  • The signal function is being called when the system signal controls have not been initialized.
ECHILD 3517 No child process.  
EBADH 3520 Handle is not valid.  
ETOOMANYREFS 3523 The operation would have exceeded the maximum number of references allowed for a descriptor.  
ENOTSAFE 3524 Function is not allowed. Function is not allowed in a job that is running with multiple threads.
EOVERFLOW 3525 Object is too large to process. The object's data size exceeds the limit allowed by this function.
EJRNDAMAGE 3526 Journal is damaged. A journal or all of the journal's attached journal receivers are damaged, or the journal sequence number has exceeded the maximum value allowed. This error occurs during operations that were attempting to send an entry to the journal.
EJRNINACTIVE 3527 Journal is inactive. The journaling state for the journal is *INACTIVE. This error occurs during operations that were attempting to send an entry to the journal.
EJRNRCVSPC 3528 Journal space or system storage error. The attached journal receiver does not have space for the entry because the storage limit has been exceeded for the system, the object, the user profile, or the group profile. This error occurs during operations that were attempting to send an entry to the journal.
EJRNRMT 3529 Journal is remote. The journal is a remote journal. Journal entries cannot be sent to a remote journal. This error occurs during operations that were attempting to send an entry to the journal.
ENEWJRNRCV 3530 New journal receiver is needed. A new journal receiver must be attached to the journal before entries can be journaled. This error occurs during operations that were attempting to send an entry to the journal.
ENEWJRN 3531 New journal is needed. The journal was not completely created, or an attempt to delete it did not complete successfully. This error occurs during operations that were attempting to start or end journaling, or were attempting to send an entry to the journal.
EJOURNALED 3532 Object already journaled. A start journaling operation was attempted on an object that is already being journaled.
EJRNENTTOOLONG 3533 Entry is too large to send. The journal entry generated by this operation is too large to send to the journal.
EDATALINK 3534 Object is a datalink object.  
ENOTAVAIL 3535 Independent Auxiliary Storage Pool (ASP) is not available. The independent ASP is in Vary Configuration (VRYCFG) or Reclaim Storage (RCLSTG) processing. To recover from this error, wait until processing has completed for the independent ASP.
ENOTTY 3536 I/O control operation is not appropriate.  
EFBIG2 3540 Attempt to write or truncate file past its sort file size limit.  
ETXTBSY 3543 Text file busy. An attempt was made to execute an IBM® i PASE program that is currently open for writing, or an attempt has been made to open for writing an IBM PASE for i program that is being executed.
EASPGRPNOTSET 3544 ASP group not set for thread.  
ERESTART 3545 A system call was interrupted and may be restarted.  
ESCANFAILURE 3546 Object had scan failure. An object has been marked as a scan failure due to processing by an exit program associated with the scan-related integrated file system exit points.


[ Back to top | UNIX-Type APIs | APIs by category ]