Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

link(2)

stat(2)

symlink(2)

unlink(2)

readlink(2)  —  System Calls

OSF

NAME

readlink − Reads the value of a symbolic link

SYNOPSIS

#include <unistd.h> int readlink (
const char ∗path,
char ∗buffer,
int buf_size );

PARAMETERS

pathSpecifies the pathname of the destination file or directory. 

bufferPoints to the user’s buffer. The buffer should be at least as large as the buf_size parameter. 

buf_sizeSpecifies the size of the buffer. 

DESCRIPTION

The readlink() function places the contents of the symbolic link named by the path parameter in buffer, which has size buf_size. If the actual length of the symbolic link is less than buf_size, the string copied into the buffer is null-terminated.  If the actual length of the symbolic link is greater than buf_size, an error is returned.  The length of a symbolic link will not exceed PATH_MAX. 

For a readlink() function to complete successfully, the calling process must have search access to the directory containing the link. 

NOTES

AES Support Level:
Trial use

RETURN VALUES

Upon successful completion, the readlink() function returns a count of the number of characters placed in the buffer (not including any terminating null).  If the readlink() function fails, the buffer is not modified, a value of -1 is returned, and errno is set to indicate the error. 

ERRORS

If the readlink() function fails, errno may be set to one of the following values:

[ENOENT]The file named by the path parameter does not exist or the path parameter points to an empty string. 

[EINVAL]The file named by the path parameter is not a symbolic link. 

[EIO]An I/O error occurred while reading from or writing to the file system. 

[ERANGE]The pathname in the symbolic link is longer than buf_size. 

[ENOTDIR]A component of the path prefix of the path parameter is not a directory. 

[EACCES]Search permission is denied on a component of the path prefix of the path parameter, or read permission is denied on the final component of the path prefix of the path parameter. 

[ENAMETOOLONG]
The length of the path parameter exceeds PATH_MAX, or a pathname component is longer than NAME_MAX while {_POSIX_NO_TRUNC} is in effect. 

RELATED INFORMATION

Functions: link(2), stat(2), symlink(2), unlink(2)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026