sl@0: /** @file ../include/unistd.h sl@0: @internalComponent sl@0: */ sl@0: sl@0: /** @fn access(const char *fn, int flags) sl@0: @param fn sl@0: @param flags sl@0: sl@0: @return Upon successful completion, the value 0 is returned; otherwise the sl@0: value -1 is returned and the global variable errno is set to indicate the sl@0: error. sl@0: sl@0: The access system calls check the accessibility of the file named in the fn argument for the access permissions indicated by the flags argument. sl@0: The value of flags is either the bitwise-inclusive OR of the access permissions to be sl@0: checked (R_OK for read permission, W_OK for write permission, and X_OK for execute/search permission), or the existence test ( F_OK. ) sl@0: sl@0: For additional information on file access permissions see File Access Permissions. sl@0: sl@0: Examples: sl@0: @code sl@0: /* Detailed description: This sample code checks read-ok accessibility of file Example.c sl@0: * sl@0: * Precondtions: Example.txt file should be present in working directory. sl@0: */ sl@0: #include sl@0: int main() sl@0: { sl@0: if(access("Example.c" ,R_OK) < 0) sl@0: { sl@0: printf("Read operation on the file is not permitted") ; sl@0: return -1 ; sl@0: } sl@0: printf("Read operation permitted on Example.c file") ; sl@0: return 0 ; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: Read operation permitted on Example.c file sl@0: sl@0: @endcode sl@0: sl@0: Limitations: sl@0: sl@0: The fn parameter should not exceed 256 characters in length. sl@0: sl@0: KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive sl@0: not found or filesystem not mounted on the drive. sl@0: sl@0: @see chmod() sl@0: @see stat() sl@0: sl@0: sl@0: sl@0: @capability Deferred @ref RFs::Entry(const TDesC16&, TEntry&) sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn chdir(const char *_path) sl@0: @param _path sl@0: sl@0: Note: This description also covers the following functions - sl@0: fchdir() sl@0: sl@0: @return Upon successful completion, the value 0 is returned; otherwise the sl@0: value -1 is returned and the global variable errno is set to indicate the sl@0: error. sl@0: sl@0: The path argument points to the pathname of a directory. sl@0: The chdir system call sl@0: causes the named directory sl@0: to become the current working directory, that is, sl@0: the starting point for path searches of pathnames not beginning with a slash, ‘/.’ sl@0: sl@0: The fchdir system call causes the directory referenced by the file descriptor fd to become the current working directory, the starting point for path sl@0: searches of pathnames not beginning with a slash, ‘/.’ sl@0: sl@0: sl@0: sl@0: Examples: sl@0: @code sl@0: /* sl@0: * Detailed description : This test code demonstrates usage of chdir system call sl@0: * sl@0: * Preconditions : "Example" directory should be present in current working sl@0: directory. sl@0: */ sl@0: #include sl@0: int main() sl@0: { sl@0: if(chdir("Example") < 0 ) sl@0: { sl@0: printf("Failed to change working directory"); sl@0: return -1 ; sl@0: } sl@0: printf("Working directory changed"); sl@0: return 0 ; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: Working directory changed sl@0: sl@0: @endcode sl@0: @code sl@0: #include sl@0: #include sl@0: int test_fchdir() sl@0: { sl@0: int retVal; sl@0: int rmdr; sl@0: int mkdr = mkdir("test_dir", S_IWUSR); sl@0: if( !mkdr ) sl@0: { sl@0: int opn = open("test_dir", O_RDONLY); sl@0: if( opn != -1 ) sl@0: { sl@0: retVal = fchdir( opn ); sl@0: if( !retVal ) sl@0: { sl@0: printf("Fchdir passed"); sl@0: } sl@0: else sl@0: { sl@0: printf("Failed"); sl@0: } sl@0: int cls = close(opn); sl@0: } sl@0: else sl@0: { sl@0: printf("Failed"); sl@0: } sl@0: rmdr = rmdir("test_dir"); sl@0: } sl@0: else sl@0: { sl@0: printf("Failed"); sl@0: } sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: Fchdir passed sl@0: sl@0: @endcode sl@0: sl@0: Limitations: sl@0: sl@0: The path parameter should not exceed 256 characters in length. sl@0: KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive sl@0: not found or filesystem not mounted on the drive. sl@0: sl@0: @capability Deferred @ref RFs::SetSessionPath(const TDesC16&) sl@0: @capability Deferred @ref RFs::Att(const TDesC16&, unsigned&) sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn chown(const char *path, uid_t owner, gid_t group) sl@0: @param path sl@0: @param owner sl@0: @param group sl@0: sl@0: Note: This description also covers the following functions - sl@0: lchown() sl@0: sl@0: @return These functions always return 0. sl@0: sl@0: sl@0: sl@0: The chown and lchown functions are build supported but not available functionally. sl@0: sl@0: Symbian OS does not support the concepts of multiple users and groups. sl@0: sl@0: Limitations: sl@0: sl@0: KErrNotReady of symbian error code is mapped to ENOENT, which typically means drive sl@0: not found or filesystem not mounted on the drive. sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn close(int fd) sl@0: @param fd sl@0: @return The close() function returns the value 0 if successful; otherwise it returns sl@0: the value -1 and sets the global variable errno to indicate the error. sl@0: sl@0: The close system call deletes a descriptor from the per-process object reference sl@0: table. If this is the last reference to the underlying object the object will sl@0: be deactivated. For example, on the last close of a file the current seek pointer associated with the file is lost; on the last close of a socket any file descriptor for that file is closed by that process. sl@0: sl@0: If 'fd' refers to a shared memory object that is still referenced at the last close, the sl@0: contents of the memory object persists till it is unreferenced. sl@0: If this is the last close of the shared memory object and the close results in unreferencing of the memory sl@0: object and the memory object is unlinked, (only in this scenario) the memory object is removed. sl@0: sl@0: When a process exits all associated file descriptors are freed. As there is sl@0: a limit on active descriptors per processes the close system call is useful when a large quantity of file descriptors sl@0: are being handled. sl@0: sl@0: sl@0: sl@0: Examples: sl@0: @code sl@0: /* Detailed description : This test code demonstrates usage of close system call sl@0: * sl@0: * Preconditions : None. sl@0: */ sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: int main() sl@0: { sl@0: int fd = 0; sl@0: fd = open("Example.txt" , O_CREAT | O_RDWR , 0666); sl@0: if(fd < 0 ) sl@0: { sl@0: printf("Failed to open file Example.txt"); sl@0: return -1; sl@0: } sl@0: if(close(fd) < 0 ) sl@0: { sl@0: printf("Failed to close file Example.txt"); sl@0: return -1; sl@0: } sl@0: printf("File Example.txt closed" ); sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: File Example.txt closed sl@0: sl@0: @endcode sl@0: @see accept() sl@0: @see fcntl() sl@0: @see flock() sl@0: @see open() sl@0: @see pipe() sl@0: @see socket() sl@0: @see shm_open() sl@0: @see shm_unlink() sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn dup(int aFid) sl@0: @param aFid sl@0: sl@0: Note: This description also covers the following functions - sl@0: dup2() sl@0: sl@0: @return The value -1 is returned if an error occurs in either call. sl@0: The external variable errno indicates the cause of the error. sl@0: sl@0: The dup system call sl@0: duplicates an existing object descriptor and returns its value to sl@0: the calling process ( newd = dup (aFid, ).); The argument aFid is a small non-negative integer index in sl@0: the per-process descriptor table. sl@0: sl@0: The new descriptor returned by the call sl@0: is the lowest numbered descriptor sl@0: currently not in use by the process. sl@0: sl@0: The object referenced by the descriptor does not distinguish sl@0: between aFid and newd in any way. sl@0: Thus if newd and aFid are duplicate references to an open sl@0: file, read , write and lseek calls all move a single pointer into the file, sl@0: and append mode, non-blocking I/O and asynchronous I/O options sl@0: are shared between the references. sl@0: If a separate pointer into the file is desired, a different sl@0: object reference to the file must be obtained by issuing an sl@0: additional open system call. sl@0: sl@0: In dup2, the value of the new descriptor newd is specified. sl@0: If this descriptor is already in use and oldd != newd, the descriptor is first deallocated as if the close system call had been used. sl@0: If aFid is not a valid descriptor, then newd is not closed. sl@0: If aFid == newd and aFid is a valid descriptor, then dup2 is successful, and does nothing. sl@0: sl@0: Limitation: sl@0: sl@0: @code sl@0: dup2(int oldfd, int newfd); sl@0: @endcode sl@0: The return value of dup2 can be different sl@0: from the one user expected to be (newfd). Users of dup2 must therefor use the sl@0: return value of dup2 as the new allocated fd rather than the one passed in (newfd). sl@0: As described above, if dup2 is successful the newfd and return values are the sl@0: same, . sl@0: sl@0: Examples: sl@0: @code sl@0: /* sl@0: *Detailed description : Sample usage of dup system call sl@0: */ sl@0: #include sl@0: #include sl@0: #include sl@0: int main() sl@0: { sl@0: int fd; sl@0: FILE *Fil; sl@0: int Newfd; sl@0: fd = open("Example.txt" , O_CREAT | O_RDWR , 0666); sl@0: if(fd < 0 ) { sl@0: printf("Failed to open file Example.txt"); sl@0: return -1; sl@0: } sl@0: Newfd = dup(fd ); sl@0: if(Newfd < 0 ) sl@0: { sl@0: printf("Failed to duplicate file descriptor"); sl@0: return -1 ; sl@0: } sl@0: close(fd); sl@0: close(Newfd); sl@0: printf("New Duped fd is %d" , Newfd); sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: New Duped fd is 4 sl@0: sl@0: @endcode sl@0: @code sl@0: /* sl@0: *Detailed description : Sample usage of dup system call sl@0: */ sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: int main() sl@0: { sl@0: int fd; sl@0: FILE *Fil; sl@0: int Newfd; sl@0: fd = open("Example.txt" , O_CREAT | O_RDWR , 0666); sl@0: if(fd < 0 ) { sl@0: printf("Failed to open file Example.txt"); sl@0: return -1; sl@0: } sl@0: Newfd = dup2(fd , 4); sl@0: if(Newfd < 0 ) { sl@0: printf("Failed to duplicate file descriptor"); sl@0: return -1; sl@0: } sl@0: close(fd); sl@0: close(Newfd); sl@0: printf("New Duped fd is %d" , Newfd); sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: New Duped fd is 4 sl@0: sl@0: @endcode sl@0: @see accept() sl@0: @see close() sl@0: @see fcntl() sl@0: @see getdtablesize() sl@0: @see open() sl@0: @see pipe() sl@0: @see socket() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn dup2(int aFid1, int aFid2) sl@0: @param aFid1 sl@0: @param aFid2 sl@0: sl@0: Refer to dup() for the documentation sl@0: @see accept() sl@0: @see close() sl@0: @see fcntl() sl@0: @see getdtablesize() sl@0: @see open() sl@0: @see pipe() sl@0: @see socket() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn fpathconf(int fd, int name) sl@0: @param fd sl@0: @param name sl@0: sl@0: Refer to pathconf() for the documentation sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn getcwd(char *_buf, size_t _size) sl@0: @param _buf sl@0: @param _size sl@0: @return Upon successful completion a pointer to the pathname is returned. Otherwise sl@0: a NULL pointer is returned and the global variable errno is set to indicate the error. In addition, getwd copies the error message associated with errno into the memory referenced by buf. sl@0: sl@0: The getcwd function copies the absolute pathname of the current working directory sl@0: into the memory referenced by buf and returns a pointer to buf. The size argument is the _size, in bytes, of the array referenced by buf. sl@0: sl@0: If _buf is NULL, space is allocated as indicated by size to store the pathname and the current working directory is sl@0: returned as long as the _size bytes are sufficient to hold the working directory name. sl@0: This space may later be free’d. sl@0: sl@0: This routine has traditionally been used by programs to save the sl@0: name of a working directory for the purpose of returning to it. sl@0: A much faster and less error-prone method of accomplishing this is to sl@0: open the current directory ((‘.’) and use the fchdir function to return. sl@0: sl@0: Examples: sl@0: @code sl@0: #include sl@0: #include sl@0: #include sl@0: #define BUF_SIZE 100 sl@0: sl@0: int main() sl@0: { sl@0: //change directory to c: sl@0: int c; sl@0: long size = BUF_SIZE; sl@0: char *buf = NULL; sl@0: char *ptr = NULL; sl@0: sl@0: c = chdir("c:\"); sl@0: sl@0: buf = (char *)malloc((size_t)size); sl@0: sl@0: if (buf != NULL && c == 0) sl@0: { sl@0: //call getcwd to fetch teh current directory sl@0: ptr = getcwd(buf, (size_t)size); sl@0: printf("getcwd returned: %s", ptr); sl@0: } sl@0: sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: getcwd returned: c: sl@0: sl@0: @endcode sl@0: sl@0: Notes: sl@0: sl@0: The getcwd function sl@0: returns the default working directory as c:\\private\\XXXXXXXX (where XXXXXXXX is the UID of the process) as the default session path is sl@0: initialised to c:\\private\\current_process'_UID, in case of Symbian OS. sl@0: @see chdir() sl@0: @see malloc() sl@0: @see strerror() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn getegid(void) sl@0: Refer to getgid() for the documentation sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn geteuid(void) sl@0: Refer to getuid() for the documentation sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn getgid(void) sl@0: sl@0: sl@0: Note: This description also covers the following functions - sl@0: getegid() sl@0: sl@0: @return These functions always return 0. sl@0: sl@0: getgid and getegid are build supported but not available functionally. Symbian OS sl@0: does not support multiple users and groups. sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: sl@0: /** @fn getgroups(int size, gid_t grouplist[]) sl@0: @param size sl@0: @param grouplist sl@0: @return These functions always return 0. sl@0: sl@0: The getgroups function build supported but not available functionally. Symbian sl@0: OS does not support multiple users and groups. sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn getpgrp(void) sl@0: Note: This description also covers the following functions - sl@0: getpgid() sl@0: sl@0: @return These functions always return 0. sl@0: sl@0: getpgrp and getpgid are build supported but not available functionally. Symbian OS sl@0: does not support multiple users and groups. sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn getpid(void) sl@0: sl@0: Note: This description also covers the following functions - sl@0: getppid() sl@0: sl@0: The getpid system call returns the process ID of the calling process. Though sl@0: the ID is guaranteed to be unique it should NOT be used for constructing temporary file names for security reasons; sl@0: see mkstemp instead. sl@0: sl@0: The getppid system call sl@0: returns the process ID of the parent sl@0: of the calling process. sl@0: sl@0: Examples: sl@0: @code sl@0: /* sl@0: * Detailed description : Sample usage of getpid system call sl@0: */ sl@0: #include sl@0: int main() sl@0: { sl@0: pid_t pid ; sl@0: if((pid = getpid()) < 0 ) sl@0: { sl@0: printf("getpid system call failed") ; sl@0: return -1 ; sl@0: } sl@0: printf("pid of this process is %d " , pid) ; sl@0: return 0 ; sl@0: } sl@0: sl@0: @endcode sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn getppid(void) sl@0: Refer to getpid() for the documentation sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn getuid(void) sl@0: Note: This description also covers the following functions - sl@0: geteuid() sl@0: sl@0: @return These functions always return 0. sl@0: sl@0: getuid and geteuid are build supported but not available functionally. Symbian OS sl@0: does not support multiple users and groups. sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn isatty(int fd) sl@0: @param fd sl@0: @return The isatty returns 1 if fd is an open descriptor connected to a terminal; returns 0 otherwise. sl@0: sl@0: This function operate on the system file descriptors for character special devices. sl@0: sl@0: The isatty function sl@0: determines if the file descriptor fd refers to a valid sl@0: terminal type device. sl@0: sl@0: Examples: sl@0: @code sl@0: #include sl@0: #include sl@0: #include //O_APPEND sl@0: sl@0: int main() sl@0: { sl@0: int x = isatty(0); //stdin (fd = 0) sl@0: int y = isatty(1); //stdout (fd = 1) sl@0: int z = isatty(2); //stderr (fd = 2) sl@0: sl@0: printf("{Expected: 1 1 1} %d %d %d", x, y, z); sl@0: sl@0: int i = isatty(5); //some invalid fd sl@0: sl@0: int fd_file = open("c:\some.txt", O_APPEND); sl@0: sl@0: int j = isatty(fd_file); //valid fd of a text file sl@0: sl@0: int fd_pipe[3]; sl@0: int p = pipe(fd_pipe); sl@0: sl@0: int k = isatty(fd_pipe[1]); //valid fd of a pipe sl@0: sl@0: close(fd_file); sl@0: close(fd_pipe[0]); sl@0: close(fd_pipe[1]); sl@0: sl@0: printf("{Expected: 0 0 0} %d %d %d", i, j, k); sl@0: sl@0: unlink("c:\some.txt"); sl@0: sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: {Expected: 1 1 1} 1 1 1 sl@0: {Expected: 0 0 0} 0 0 0 sl@0: sl@0: @endcode sl@0: @see ioctl() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn link(const char *oldpath, const char *newpath) sl@0: @param oldpath sl@0: @param newpath sl@0: @return Returns 0 on successful completion. Otherwise returns -1 and sets errno to indicate the error. sl@0: sl@0: The link system call atomically creates the specified directory entry (hard sl@0: link) newpath with the attributes of the underlying object pointed at by oldpath. Note that if the link is successful the link count of the underlying sl@0: object is not incremented: On Symbian OS link functionality is simulated and the sl@0: underlying object is not aware of a existing link. Link is supported only on regular files and fifos. It is not on directories. Creation sl@0: of link on a existing link file is not supported. sl@0: sl@0: If oldpath is removed, the file newpath is also deleted as the platform recognizes the underlying object only by oldpath. sl@0: sl@0: The object pointed at by the oldpath argument must exist for the hard link to succeed and both oldpath and newpath must be in the same file system. The oldpath argument may not be a directory. Creation time stamp of the file sl@0: is not supported and access time stamp is equal to modification time stamp. sl@0: A newly created file will not alter the time stamp of parent directory. sl@0: sl@0: Examples: sl@0: @code sl@0: /* sl@0: * Detailed description : Example to create link to a file sl@0: * Precondition : "Parent.txt" should exist in c: drive sl@0: * sl@0: */ sl@0: #include sl@0: #include sl@0: int main(void) sl@0: { sl@0: if(link("C:\Parent.txt","C:\Link") < 0) sl@0: { sl@0: printf("Link creation to parent file failed"); sl@0: return -1; sl@0: } sl@0: printf("Link to parent file created"); sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: Link to parent file created. sl@0: sl@0: @endcode sl@0: sl@0: Limitations: sl@0: sl@0: - The oldpath and newpath parameters of the link() function should not exceed 256 characters in length. sl@0: - P.I.P.S. only simulates link files and does not distinguish between hard and symbolic links. sl@0: sl@0: - KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive sl@0: not found or filesystem not mounted on the drive. sl@0: sl@0: @see readlink() sl@0: @see symlink() sl@0: @see unlink() sl@0: sl@0: sl@0: sl@0: @capability Deferred @ref RFs::Delete(const TDesC16&) sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn lseek(int fd, off_t pos, int whence) sl@0: @param fd sl@0: @param pos sl@0: @param whence sl@0: @return Upon successful completion, lseek returns the resulting offset location as measured in bytes from the beginning of the file. Otherwise, a value of -1 is returned and errno is set to indicate the error. sl@0: sl@0: The lseek system call repositions the offset of the file descriptor fildes to the argument offset according to the directive whence. The argument fildes must be an open file descriptor. The lseek system call repositions the file position pointer associated with the file descriptor fildes as follows: sl@0: If whence is SEEK_SET, the offset is set to offset bytes. sl@0: If whence is SEEK_CUR, the offset is set to its current location plus offset bytes. sl@0: If whence is SEEK_END, the offset is set to the size of the file plus offset bytes. sl@0: Some devices are incapable of seeking. The value of the pointer associated with such a device is undefined. sl@0: sl@0: If 'fd' refers to a shared memory object then lseek() on the shared memory object is supported by the current implementation. sl@0: sl@0: Note : lseek function allows the file offset to be set beyond the existing end-of-file, data in the seeked slot is undefined, and hence the read operation in seeked slot is undefined untill data is actually written into it. lseek beyond existing end-of-file increases the file size accordingly. sl@0: sl@0: Errors: sl@0: sl@0: The lseek system call will fail and the file position pointer will remain unchanged if: sl@0: [EBADF] The fildes argument is not an open file descriptor. sl@0: [EINVAL] The whence argument is not a proper value or the resulting file offset would be negative for a non-character special file. sl@0: [EOVERFLOW] The resulting file offset would be a value which cannot be represented correctly in an object of type off_t(Not supported). sl@0: [ESPIPE] The fildes argument is associated with a pipe, socket, or FIFO. sl@0: sl@0: Examples: sl@0: @code sl@0: /* sl@0: * Detailed description : Example for lseek usage. sl@0: */ sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: int main() sl@0: { sl@0: int fd = 0; sl@0: fd = open("lseek.txt" , O_CREAT | O_RDWR , 0666); sl@0: if(lseek(fd , 0 , SEEK_SET) < 0 ) { sl@0: printf("Lseek on file lseek.txt failed \n"); sl@0: return -1; sl@0: } sl@0: printf("Lseek on lseek.txt passed "); sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: Lseek on lseek.txt passed sl@0: @endcode sl@0: sl@0: @see dup() sl@0: @see open() sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn lseek64(int fildes, off64_t offset, int whence) sl@0: @param fildes sl@0: @param offset sl@0: @param whence sl@0: @return Upon successful completion, lseek64 returns the resulting offset location as measured in bytes from the sl@0: beginning of the file. sl@0: Otherwise, sl@0: a value of -1 is returned and errno is set to indicate sl@0: the error. sl@0: sl@0: For full documentation see: http://www.unix.org/version2/whatsnew/lfs20mar.html#3.0 sl@0: sl@0: @see lseek() sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn pathconf(const char *path, int name) sl@0: @param path sl@0: @param name sl@0: sl@0: Note: This description also covers the following functions - sl@0: fpathconf() sl@0: sl@0: @return If the call to pathconf or fpathconf is not successful, -1 is returned and errno is set appropriately. sl@0: Otherwise, if the variable is associated with functionality that does sl@0: not have a limit in the system, -1 is returned and errno is not modified. sl@0: Otherwise, the current variable value is returned. sl@0: sl@0: The pathconf and fpathconf system calls provide a method for applications to determine the current sl@0: value of a configurable system limit or option variable associated sl@0: with a pathname or file descriptor. sl@0: sl@0: For pathconf, the path argument is the name of a file or directory. sl@0: For fpathconf, the fd argument is an open file descriptor. sl@0: The name argument specifies the system variable to be queried. sl@0: Symbolic constants for each name value are found in the include file \. sl@0: sl@0: The available values are as follows: sl@0: @code sl@0: _PC_LINK_MAX sl@0: The maximum file link count. sl@0: _PC_MAX_CANON sl@0: The maximum number of bytes in terminal canonical input line. sl@0: _PC_MAX_INPUT sl@0: The minimum maximum number of bytes for which space is available in a terminal input queue. sl@0: _PC_NAME_MAX sl@0: The maximum number of bytes in a file name. sl@0: _PC_PATH_MAX sl@0: The maximum number of bytes in a pathname. sl@0: _PC_PIPE_BUF sl@0: The maximum number of bytes which will be written atomically to a pipe. sl@0: _PC_CHOWN_RESTRICTED sl@0: Return 1 if appropriate privilege is required for the chown system call, otherwise 0. -p1003.1-2001 requires appropriate privilege in all cases, but this behavior was optional in prior editions of the standard. sl@0: _PC_NO_TRUNC sl@0: Return greater than zero if attempts to use pathname components longer than sl@0: .Brq Dv NAME_MAX will result in an [ENAMETOOLONG] error; otherwise, such components will be truncated to sl@0: .Brq Dv NAME_MAX. -p1003.1-2001 requires the error in all cases, but this behavior was optional in prior editions of the standard, and some non- POSIX -compliant file systems do not support this behavior. sl@0: _PC_VDISABLE sl@0: Returns the terminal character disabling value. sl@0: _PC_ASYNC_IO sl@0: Return 1 if asynchronous I/O is supported, otherwise 0. sl@0: _PC_PRIO_IO sl@0: Returns 1 if prioritised I/O is supported for this file, otherwise 0. sl@0: _PC_SYNC_IO sl@0: Returns 1 if synchronised I/O is supported for this file, otherwise 0. sl@0: _PC_ALLOC_SIZE_MIN sl@0: Minimum number of bytes of storage allocated for any portion of a file. sl@0: _PC_FILESIZEBITS sl@0: Number of bits needed to represent the maximum file size. sl@0: _PC_REC_INCR_XFER_SIZE sl@0: Recommended increment for file transfer sizes between _PC_REC_MIN_XFER_SIZE and _PC_REC_MAX_XFER_SIZE. sl@0: _PC_REC_MAX_XFER_SIZE sl@0: Maximum recommended file transfer size. sl@0: _PC_REC_MIN_XFER_SIZE sl@0: Minimum recommended file transfer size. sl@0: _PC_REC_XFER_ALIGN sl@0: Recommended file transfer buffer alignment. sl@0: _PC_SYMLINK_MAX sl@0: Maximum number of bytes in a symbolic link. sl@0: _PC_ACL_EXTENDED sl@0: Returns 1 if an Access Control List (ACL) can be set on the specified file, otherwise 0. sl@0: _PC_ACL_PATH_MAX sl@0: Maximum number of ACL entries per file. sl@0: _PC_CAP_PRESENT sl@0: Returns 1 if a capability state can be set on the specified file, otherwise 0. sl@0: _PC_INF_PRESENT sl@0: Returns 1 if an information label can be set on the specified file, otherwise 0. sl@0: _PC_MAC_PRESENT sl@0: Returns 1 if a Mandatory Access Control (MAC) label can be set on the specified file, otherwise 0. sl@0: @endcode sl@0: sl@0: Errors: sl@0: sl@0: If any of the following conditions occur, the pathconf and fpathconf system calls shall return -1 and set errno to the corresponding value. sl@0: [EINVAL] The value of the name argument is invalid. sl@0: [EINVAL] The implementation does not support an association of the variable name with the associated file. sl@0: The pathconf system call will fail if: sl@0: [ENOTDIR] A component of the path prefix is not a directory. sl@0: [ENAMETOOLONG] A component of a pathname exceeded sl@0: .Brq Dv NAME_MAX characters (but see _PC_NO_TRUNC above), or an entire path name exceeded sl@0: .Brq Dv PATH_MAX characters. sl@0: [ENOENT] The named file does not exist. sl@0: [EACCES] Search permission is denied for a component of the path prefix. sl@0: [ELOOP] Too many symbolic links were encountered in translating the pathname. sl@0: [EIO] An I/O error occurred while reading from or writing to the file system. sl@0: The fpathconf system call will fail if: sl@0: [EBADF] The fd argument is not a valid open file descriptor. sl@0: [EIO] An I/O error occurred while reading from or writing to the file system. sl@0: sl@0: Examples: sl@0: @code sl@0: #include sl@0: #include sl@0: int test_pathconf() sl@0: { sl@0: int fp = open("test_pathconf1.txt", O_RDWR|O_CREAT); sl@0: if(fp != -1) sl@0: { sl@0: int n = pathconf("test_pathconf1.txt", _PC_LINK_MAX); sl@0: if( n < _POSIX_LINK_MAX ) sl@0: { sl@0: return -1; sl@0: } sl@0: else sl@0: { sl@0: printf("_PC_LINK_MAX value: %d", n); sl@0: printf("Pathconf passed"); sl@0: return 0; sl@0: } sl@0: } sl@0: else sl@0: { sl@0: printf("failed"); sl@0: return -1; sl@0: } sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: _PC_LINK_MAX value: 1 sl@0: Pathconf passed sl@0: sl@0: @endcode sl@0: sl@0: sl@0: Note: sl@0: sl@0: @code sl@0: The current implementation of the functions pathconf and fpathconf considers only the following configurable variables. _PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT _PC_NAME_MAX _PC_PATH_MAX _PC_PIPE_BUF _PC_CHOWN_RESTRICTED _PC_NO_TRUNC _PC_VDISABLE Also, these functions return the limits as required by the POSIX sl@0: standard instead of the actual system limits determined on the run. sl@0: @endcode sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn pipe(int *fildes) sl@0: @param fildes sl@0: @return The pipe function returns the value 0 if successful; otherwise the sl@0: value -1 is returned and errno is set to indicate the error. sl@0: sl@0: The pipe system call sl@0: creates a pipe, which is an object allowing sl@0: bidirectional data flow, sl@0: and allocates a pair of file descriptors. sl@0: sl@0: By convention, the first descriptor is normally used as the read end of the pipe, and the second is normally the write end, so that data written to fildes[1] appears on (i.e. can be read from) fildes[0]. This allows the output of one thread to be sent to another sl@0: thread: the source's standard output is set up to be the write end of the sl@0: pipe and the sink's standard input is set up to be the read end of the sl@0: pipe. The pipe itself persists until all its associated descriptors are closed. sl@0: sl@0: A pipe that has had an end closed is considered widowed. Writing on such a pipe causes the writing process to fail and errno is set to EPIPE . Widowing a pipe is the only way to deliver end-of-file to a sl@0: reader: After the reader consumes any buffered data, reading a widowed pipe sl@0: returns a zero count. sl@0: sl@0: Examples: sl@0: @code sl@0: #include sl@0: #include sl@0: sl@0: int main(void) sl@0: { sl@0: int fds[2]; sl@0: if (pipe(fds) == -1) { sl@0: printf("Pipe creation failed"); sl@0: } sl@0: /* fds[0] - opened for read */ sl@0: /* fds[1] - opened for write */ sl@0: close(fds[0]); sl@0: close(fds[1]); sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: @see read() sl@0: @see write() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn read(int fd, void *buf, size_t cnt) sl@0: @param fd sl@0: @param buf sl@0: @param cnt sl@0: sl@0: Note: This description also covers the following functions - sl@0: readv() sl@0: sl@0: @return If successful, the number of bytes actually read is returned. Upon reading sl@0: end-of-file, zero is returned. Otherwise, -1 is returned and the global variable errno is set to indicate the error. sl@0: sl@0: The read system call sl@0: attempts to read cnt bytes of data from the object referenced by the descriptor fd into the buffer pointed to by buf. The readv system call sl@0: performs the same action, but scatters the input data sl@0: into the iovcnt buffers specified by the members of the iov array: iov[0], iov[1], ..., iov[iovcnt-1]. sl@0: sl@0: For readv the iovec structure is defined as: sl@0: sl@0: struct iovec { sl@0: void *iov_base; // Base address. sl@0: size_t iov_len; // Length. sl@0: }; sl@0: sl@0: Each iovec entry specifies the base address and length of an area sl@0: in memory where data should be placed. sl@0: The readv system call sl@0: will always fill an area completely before proceeding sl@0: to the next. sl@0: sl@0: On objects capable of seeking, the read starts at a position sl@0: given by the pointer associated with fd (see lseek ) sl@0: Upon return from read, the pointer is incremented by the number of bytes actually read. sl@0: sl@0: If 'fd' refers to a shared memory object then read() on the shared memory object is supported by the current implementation. sl@0: sl@0: Objects that are not capable of seeking always read from the current sl@0: position. sl@0: The value of the pointer associated with such an sl@0: object is undefined. sl@0: sl@0: Upon successful completion, read, and readv return the number of bytes actually read and placed in the buffer. sl@0: The system guarantees to read the number of bytes requested if sl@0: the descriptor references a normal file that has that many bytes left sl@0: before the end-of-file, but in no other case. sl@0: sl@0: Errors: sl@0: sl@0: The read, and readv system calls will succeed unless: sl@0: [EBADF] The d argument is not a valid file or socket descriptor open for reading. sl@0: [ECONNRESET]The d argument refers to a socket, and the remote socket end is forcibly closed. sl@0: [EFAULT] The buf argument points outside the allocated address space(Not supported). sl@0: [EIO] An I/O error occurred while reading from the file system(Not supported). sl@0: [EINTR] A read from a slow device was interrupted before any data arrived by the delivery of a signal(Not supported). sl@0: [EINVAL] The pointer associated with d was negative. sl@0: [EAGAIN] The file was marked for non-blocking I/O, and no data were ready to be read. sl@0: [EISDIR] The file descriptor is associated with a directory residing on a file system that does not allow regular read operations on directories (e.g. NFS)(Not supported). sl@0: [EOPNOTSUPP] The file descriptor is associated with a file system and file type that do not allow regular read operations on it(Not supported). sl@0: [EOVERFLOW] The file descriptor is associated with a regular file, nbytes is greater than 0, offset is before the end-of-file, and offset is greater than or equal to the offset maximum established for this file system(Not supported). sl@0: [EINVAL] The value nbytes is greater than INT_MAX. sl@0: In addition, readv and preadv may return one of the following errors: sl@0: [EINVAL] The iovcnt argument was less than or equal to 0, or greater than IOV_MAX. sl@0: [EINVAL] One of the iov_len values in the iov array was negative. sl@0: [EINVAL] The sum of the iov_len values in the iov array overflowed a 32-bit integer. sl@0: [EFAULT] Part of the iov array points outside the process’s allocated address space. sl@0: sl@0: Examples: sl@0: @code sl@0: /* Detailed description :This example demonstrates usage of read-system call, this sl@0: * Example reads 10 bytes from a file specified sl@0: * sl@0: * Preconditions: Example.txt file should be present in C: and should contain sl@0: * string Hello World. sl@0: * sl@0: */ sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: int main() sl@0: { sl@0: int fd = 0; sl@0: char Buff[12] = {0}; sl@0: sl@0: fd = open("C:\Example.txt" , O_RDONLY ); sl@0: sl@0: if(fd < 0 ) { sl@0: printf("Failed to open C:\Example.txt file"); sl@0: return -1; sl@0: } sl@0: sl@0: if(read(fd , Buff , 11) < 11) { sl@0: printf("Failed to read specified number of bytes from file"); sl@0: return -1; sl@0: } sl@0: sl@0: printf("file contains %s sl@0: " , Buff); sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: file contains Hello World sl@0: sl@0: @endcode sl@0: @code sl@0: /* sl@0: * Detailed description: Sample usage of readv system call sl@0: * Preconditions: Example.txt file should be present in working directory containing Hello world in it sl@0: * sl@0: */ sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: int main() sl@0: { sl@0: int fd = 0; sl@0: struct iovec io_vec[1]; sl@0: char Buf[12] = { 0 }; sl@0: io_vec[0].iov_base = Buf; sl@0: io_vec[0].iov_len = 11; sl@0: fd = open("Example.txt" , O_RDONLY ); sl@0: if(fd < 0 ) { sl@0: printf("File open failed"); sl@0: return -1; sl@0: } sl@0: if(readv(fd , io_vec , 1) < 11 ) { sl@0: printf("Failed to read fron Example.txt file"); sl@0: return -1; sl@0: } sl@0: printf("Read succes %s" , io_vec[0].iov_base); sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: Read succes Hello World sl@0: sl@0: @endcode sl@0: @see dup() sl@0: @see fcntl() sl@0: @see getdirentries() sl@0: @see open() sl@0: @see pipe() sl@0: @see select() sl@0: @see socket() sl@0: @see socketpair() sl@0: @see fread() sl@0: @see readdir() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn rmdir(const char *_path) sl@0: @param _path sl@0: @return The rmdir() function returns the value 0 if successful; otherwise the sl@0: value -1 is returned and the global variable errno is set to indicate the sl@0: error. sl@0: sl@0: The rmdir system call removes a directory file whose name is given by path. sl@0: The directory must not have any entries other than '.' and '..'. sl@0: Examples: sl@0: @code sl@0: /* sl@0: * Detailed description: This test code demonstrates usage of rmdir systemcall, it removes directory sl@0: * Example from the current working directory. sl@0: * sl@0: * Preconditions: Expects empty directory "Example" in current working directory. sl@0: */ sl@0: #include sl@0: int main() sl@0: { sl@0: if(rmdir("Example") < 0 ) sl@0: { sl@0: printf("Rmdir failed"); sl@0: return -1; sl@0: } sl@0: printf("Directory Example removed"); sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: Directory Example removed sl@0: @code sl@0: sl@0: @endcode sl@0: sl@0: Limitations: sl@0: sl@0: The _path parameter of the rmdir() function should not exceed 256 characters in length. sl@0: sl@0: KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive sl@0: not found or filesystem not mounted on the drive. sl@0: sl@0: @capability Deferred @ref RFs::RmDir(const TDesC16&) sl@0: @capability Deferred @ref RFs::Att(const TDesC16&, unsigned&) sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn setgid(gid_t gid) sl@0: @param gid sl@0: sl@0: Refer to setuid() for the documentation sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn setpgid(pid_t pid, pid_t pgid) sl@0: @param pid sl@0: @param pgid sl@0: sl@0: Note: This description also covers the following functions - sl@0: setpgrp() sl@0: sl@0: @return These functions always return 0. sl@0: sl@0: These functions are build supported but not available functionally. Symbian sl@0: OS does not support multiple users and groups. sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn setsid(void) sl@0: sl@0: @return These functions always return 0. sl@0: sl@0: These functions are build supported but not available functionally. Symbian sl@0: OS does not support multiple users and groups. sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn setuid(uid_t uid) sl@0: @param uid sl@0: sl@0: Note: This description also covers the following functions - sl@0: seteuid() setgid() setegid() sl@0: sl@0: @return These functions always return 0. sl@0: sl@0: These functions are build supported but not available functionally. Symbian sl@0: OS does not support multiple users and groups. sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn sleep(unsigned int secs) sl@0: @param secs sl@0: @return If the sleep function returns because the requested time has elapsed, the value sl@0: returned will be zero. sl@0: sl@0: The sleep function suspends execution of the calling process until seconds seconds have elapse sl@0: sl@0: Time interval is internally represented using 32 bit value(range +-2147483647). sl@0: Any time interval greater 2147483647 returns 0 without sleeping. Hence Maximum sl@0: sleep time supported here is 35 minutes, 47 seconds. sl@0: sl@0: sl@0: sl@0: Examples: sl@0: @code sl@0: /* sl@0: * Detailed description: This test code shows usage of sleep system call , here sample code sl@0: * sleeps for 2 seconds. sl@0: */ sl@0: #include sl@0: int main() sl@0: { sl@0: if(sleep(2) < 0 ) sl@0: { sl@0: printf("Sleep failed"); sl@0: return -1; sl@0: } sl@0: printf("Sleep successful"); sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: Sleep successful sl@0: sl@0: @endcode sl@0: @see nanosleep() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn sysconf(int name) sl@0: @param name sl@0: @return If the call to sysconf is not successful, -1 is returned and errno is set appropriately. sl@0: Otherwise, if the variable is associated with functionality that is not sl@0: supported, -1 is returned and errno is not modified. sl@0: Otherwise, the current variable value is returned. sl@0: sl@0: This interface is defined by -p1003.1-88 .A far more complete interface is available using sysctl. sl@0: sl@0: sl@0: The sysconf function provides a method for applications to determine the sl@0: current value of a configurable system limit or option variable. The name argument specifies the system variable to be queried. Symbolic sl@0: constants for each name value are found in the include file \#include \ . Shell programmers who need access sl@0: to these parameters should use the getconf utility. sl@0: sl@0: The available values are as follows: sl@0: @code sl@0: _SC_ARG_MAX sl@0: The maximum number of argument to execve. sl@0: _SC_CHILD_MAX sl@0: The maximum number of simultaneous processes per user id.(Not supported) sl@0: _SC_CLK_TCK sl@0: The frequency of the statistics clock in ticks per second. sl@0: _SC_IOV_MAX sl@0: The maximum number of elements in the I/O vector used by readv , writev , recvmsg , sl@0: and sendmsg . sl@0: _SC_NGROUPS_MAX sl@0: The maximum number of supplemental groups.(Not supported) sl@0: _SC_NPROCESSORS_CONF sl@0: The number of processors configured.(Not supported) sl@0: _SC_NPROCESSORS_ONLN sl@0: The number of processors currently online.(Not supported) sl@0: _SC_OPEN_MAX sl@0: The maximum number of open files per user id.(Not supported) sl@0: _SC_STREAM_MAX sl@0: The minimum maximum number of streams that a process may have open( Not supported) sl@0: at any one time. sl@0: _SC_TZNAME_MAX sl@0: The minimum maximum number of types supported for the name of a sl@0: timezone.(Not supported) sl@0: _SC_JOB_CONTROL sl@0: Return 1 if job control is available on this system, otherwise -1. sl@0: _SC_SAVED_IDS sl@0: Returns 1 if saved set-group and saved set-user ID is available, sl@0: otherwise -1.(Not supported) sl@0: _SC_VERSION sl@0: The version of -p1003.1 with which the system sl@0: attempts to comply.(Not supported) sl@0: _SC_BC_BASE_MAX sl@0: The maximum ibase/obase values in the bc utility.(Not supported) sl@0: _SC_BC_DIM_MAX sl@0: The maximum array size in the bc utility.(Not supported) sl@0: _SC_BC_SCALE_MAX sl@0: The maximum scale value in the bc utility.(Not supported) sl@0: _SC_BC_STRING_MAX sl@0: The maximum string length in the bc utility.(Not supported) sl@0: _SC_COLL_WEIGHTS_MAX sl@0: The maximum number of weights that can be assigned to any entry of sl@0: the LC_COLLATE order keyword in the locale definition file.(Not supported) sl@0: _SC_EXPR_NEST_MAX sl@0: The maximum number of expressions that can be nested within sl@0: parenthesis by the expr utility.(Not supported) sl@0: _SC_LINE_MAX sl@0: The maximum length in bytes of a text-processing utility's input sl@0: line.(Not supported) sl@0: _SC_RE_DUP_MAX sl@0: The maximum number of repeated occurrences of a regular expression sl@0: permitted when using interval notation.(Not supported) sl@0: _SC_2_VERSION sl@0: The version of -p1003.2 with which the system attempts to comply.( Not supported) sl@0: _SC_2_C_BIND sl@0: Return 1 if the system's C-language development facilities support the sl@0: C-Language Bindings Option, otherwise -1. sl@0: _SC_2_C_DEV sl@0: Return 1 if the system supports the C-Language Development Utilities Option, sl@0: otherwise -1. sl@0: _SC_2_CHAR_TERM sl@0: Return 1 if the system supports at least one terminal type capable of sl@0: all operations described in -p1003.2 , sl@0: otherwise -1. sl@0: _SC_2_FORT_DEV sl@0: Return 1 if the system supports the FORTRAN Development Utilities Option, sl@0: otherwise -1. sl@0: _SC_2_FORT_RUN sl@0: Return 1 if the system supports the FORTRAN Runtime Utilities Option, sl@0: otherwise -1. sl@0: _SC_2_LOCALEDEF sl@0: Return 1 if the system supports the creation of locales, otherwise -1. sl@0: _SC_2_SW_DEV sl@0: Return 1 if the system supports the Software Development Utilities Option, sl@0: otherwise -1. sl@0: _SC_2_UPE sl@0: Return 1 if the system supports the User Portability Utilities Option, sl@0: otherwise -1. sl@0: _SC_PAGESIZE sl@0: Returns size of a page in bytes. (Some systems use PAGE_SIZE instead.) sl@0: @endcode sl@0: sl@0: Note: Some of the return values may not be posix compliant. sl@0: sl@0: Examples: sl@0: @code sl@0: /* sl@0: * Detailed description : This test code demonstrates usage of sysconf system call , here it get max command sl@0: line arguments that can be passed to process. sl@0: */ sl@0: #include sl@0: int main() sl@0: { sl@0: int ret = 0 ; sl@0: ret = sysconf(_SC_ARG_MAX) ; sl@0: if(ret < 0 ) { sl@0: printf("Sysconf call failed") ; sl@0: return -1 ; sl@0: } sl@0: printf("Max command line arguments = %d" , ret) ; sl@0: return 0 ; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: max-number of commandline args supproted by system. sl@0: sl@0: @endcode sl@0: @see pathconf() sl@0: @see confstr() sl@0: sl@0: sl@0: Bugs: sl@0: sl@0: The value for _SC_STREAM_MAX is a minimum maximum, and is required to be sl@0: the same as ANSI C's FOPEN_MAX, so the returned value is a ridiculously small sl@0: and misleading number. sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn unlink(const char *pathname) sl@0: @param pathname sl@0: @return Upon successful completion, 0 is returned. Otherwise, -1 is returned and errno is set to indicate the error. sl@0: sl@0: sl@0: The unlink system call removes the link named by pathname from its file system. sl@0: sl@0: Symbian OS simulates links so there is no reference count and files are unaware sl@0: of links. Calling unlink on a file will always close the file, regardless of sl@0: whether there is another link. sl@0: sl@0: The pathname argument may not be a directory. sl@0: sl@0: Examples: sl@0: @code sl@0: /* sl@0: * Detailed description : Example to unlink a link file sl@0: * Precondition : A link file by name "Link" should exist in sl@0: * c: drive. sl@0: */ sl@0: #include sl@0: #include sl@0: int main(void) sl@0: { sl@0: char rdbuff[25]; sl@0: if(unlink("C:\Link")) sl@0: { sl@0: printf("unlink on link file failed"); sl@0: } sl@0: printf("Unlink on link file succeeded"); sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: Unlink on link file succeeded. sl@0: sl@0: @endcode sl@0: sl@0: Limitations: sl@0: sl@0: - The path parameter of the unlink() function should not exceed 256 characters in length. sl@0: - P.I.P.S. only simulates link files and does not distinguish between hard and symbolic links. sl@0: - KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive sl@0: not found or filesystem not mounted on the drive. sl@0: sl@0: @see close() sl@0: @see link() sl@0: @see rmdir() sl@0: @see symlink() sl@0: sl@0: sl@0: sl@0: @capability Deferred @ref RFs::Att(const TDesC16&, unsigned&) sl@0: @capability Deferred @ref RFs::SetAtt(const TDesC16&, unsigned, unsigned) sl@0: @capability Deferred @ref RFs::Delete(const TDesC16&) sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn write(int fd, const void *buf, size_t cnt) sl@0: @param fd sl@0: @param buf sl@0: @param cnt sl@0: sl@0: @return Upon successful completion the number of bytes which were written sl@0: is returned. sl@0: Otherwise a -1 is returned and the global variable errno is set to indicate the error. sl@0: sl@0: The write system call attempts to write cnt bytes of data to the object referenced by the descriptor fd from the buffer pointed to by buf . sl@0: The writev system call performs the same action, but gathers the output data from the iovcnt buffers specified by the members of the iov array: iov[0], iov[1], ..., iov[iovcnt-1]. sl@0: The pwrite and pwritev system calls perform the same functions, but write to the specified position in the file without modifying the file pointer. sl@0: sl@0: Notes: sl@0: sl@0: 1. This description also covers the pwrite(), writev() and pwritev() functions. sl@0: sl@0: 2. An attempt to write on a broken pipe generates the SIGPIPE signal, which may cause termination of the process, if it is not handled. sl@0: sl@0: For writev and pwritev, the iovec structure is defined as: sl@0: sl@0: @code sl@0: struct iovec { sl@0: void *iov_base; //Base address. sl@0: size_t iov_len; // Length. sl@0: }; sl@0: @endcode sl@0: sl@0: Each iovec entry specifies the base address and length of an area sl@0: in memory from which data should be written. sl@0: The writev system call sl@0: will always write a complete area before proceeding sl@0: to the next. sl@0: sl@0: On objects capable of seeking, the write starts at a position sl@0: given by the pointer associated with fd , sl@0: see lseek . sl@0: Upon return from write , sl@0: the pointer is incremented by the number of bytes which were written. sl@0: sl@0: If 'fd' refers to a shared memory object then write() on the shared memory object is supported by the current implementation. sl@0: sl@0: Objects that are not capable of seeking always write from the current sl@0: position. sl@0: The value of the pointer associated with such an object sl@0: is undefined. sl@0: sl@0: When using non-blocking I/O on objects such as sockets that are subject sl@0: to flow control, write and writev may write fewer bytes than requested; sl@0: the return value must be noted, sl@0: and the remainder of the operation should be retried when possible. sl@0: sl@0: Examples: sl@0: @code sl@0: /* Detailed description: This sample code creates an Example.txt file in the current working sl@0: * directory(if file existes then it is truncated) and writes "Hello World" string sl@0: * to the file. sl@0: * sl@0: * Preconditions: Example.txt if present, it should not be read-only. sl@0: */ sl@0: int main() sl@0: { sl@0: int fd = 0 ; sl@0: char Buf[] = "Hello World" ; sl@0: fd = open("Example.txt" , O_CREAT | O_TRUNC | O_RDWR ,0666) ; sl@0: if(fd < 0 ) sl@0: { sl@0: printf("Failed to open file Example.txt") ; sl@0: return -1 ; sl@0: } sl@0: if(write(fd , Buf , sizeof(Buf)) < sizeof(Buf)) sl@0: { sl@0: printf("Failed to write string %s to file" , Buf) ; sl@0: return -1 ; sl@0: } sl@0: printf("String %s written to file sl@0: " , Buf) ; sl@0: return 0 ; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: String Hello World written to file sl@0: sl@0: @endcode sl@0: @code sl@0: /* sl@0: * Detailed description : Sample usage of readv system call sl@0: */ sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: int main() sl@0: { sl@0: int fd = 0 ; sl@0: struct iovec io_vec[1] ; sl@0: char Buf[12] = "Hello world" ; sl@0: io_vec[0].iov_base = Buf ; sl@0: io_vec[0].iov_len = 11 ; sl@0: fd = open("Example.txt" , O_CREAT | O_RDWR , 0666 ) ; sl@0: if(fd < 0 ) { sl@0: printf("File open failed") ; sl@0: return -1 ; sl@0: } sl@0: if(writev(fd , io_vec , 1) < 11 ) { sl@0: printf("Failed to read fron Example.txt file") ; sl@0: return -1 ; sl@0: } sl@0: printf("writev succes %s written" , io_vec[0].iov_base) ; sl@0: return 0 ; } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: writev succes Hello world written sl@0: sl@0: @endcode sl@0: @see fcntl() sl@0: @see lseek() sl@0: @see open() sl@0: @see pipe() sl@0: @see select() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn confstr(int name, char *buf, size_t len) sl@0: @param name sl@0: @param buf sl@0: @param len sl@0: @return If the call to confstr is not successful, 0 is returned and errno is set appropriately. sl@0: Otherwise, if the variable does not have a configuration defined value, sl@0: 0 is returned and errno is not modified. sl@0: Otherwise, the buffer size needed to hold the entire configuration-defined sl@0: value is returned. sl@0: If this size is greater than the argument len, the string in buf was truncated. sl@0: sl@0: The confstr function provides a method for applications to get configuration sl@0: defined string values. sl@0: sl@0: The name argument specifies the system variable to be queried. Symbolic sl@0: constants for each name value are found in the include file \#include \ The len argument specifies the size of the buffer referenced by the argument buf. If len is non-zero, buf is a non-null pointer, and name has a value, up to len - 1 bytes of the value are copied into the buffer buf. The copied value is always null terminated. sl@0: The available values are as follows: sl@0: sl@0: @code sl@0: _CS_PATH sl@0: Return a value for the PATH environment variable that finds all the standard utilities. sl@0: sl@0: @endcode sl@0: sl@0: Examples: sl@0: @code sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: int main() sl@0: { sl@0: int n = 0; sl@0: char *buf = NULL; sl@0: int len = 0; sl@0: sl@0: n = confstr(_CS_PATH, NULL, 0); sl@0: sl@0: printf("{Expected: 31} %d", n); sl@0: sl@0: if( n == 0 ) sl@0: return -1; sl@0: sl@0: buf = (char *)malloc(n); sl@0: sl@0: if ( buf == NULL ) sl@0: { sl@0: printf("malloc failed!!"); sl@0: return -1; sl@0: } sl@0: sl@0: len = confstr(_CS_PATH, buf, n); sl@0: sl@0: printf("PATH in buffer: \n%s", buf); sl@0: printf("length: %d", len); sl@0: free(buf); sl@0: sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: PATH in buffer: sl@0: /usr/bin:/bin:/usr/sbin:/sbin: sl@0: length: 31 sl@0: sl@0: @endcode sl@0: @see pathconf() sl@0: @see sysconf() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn getopt(int nargc, char * const nargv[], const char *ostr) sl@0: @param nargc sl@0: @param nargv sl@0: @param ostr sl@0: @return The getopt function returns the next known option character in optstring. If getopt encounters a character not found in optstring or if it detects a missing option argument, it returns ‘?’ (question mark. If optstring has a leading ‘:’ then a missing option argument causes ‘:’ to be returned instead of ‘?.’ In either case, the variable optopt is set to the character that caused the error. The getopt function returns -1 when the argument list is exhausted. sl@0: sl@0: The getopt function incrementally parses a command line argument list argv and returns the next known option character. An option character is known if it has been specified in the string of accepted option characters, optstring. sl@0: sl@0: The option string optstring may contain the following elements: individual characters, and characters followed by a colon to indicate an option argument is to follow. For example, an option string x recognizes an option "-x", and an option string x: recognizes an option and argument "-x argument." It does not matter to getopt if a following argument has leading white space. sl@0: sl@0: On return from getopt, optarg points to an option argument, if it is anticipated, and the variable optind contains the index to the next argv argument for a subsequent call to getopt. The variable optopt saves the last known option character returned by getopt. sl@0: sl@0: The variables opterr and optind are both initialized to 1. The optind variable may be set to another value before a set of calls to getopt in order to skip over more or less argv entries. sl@0: sl@0: In order to use getopt to evaluate multiple sets of arguments, or to evaluate a single set of arguments multiple times, the variable optreset must be set to 1 before the second and each additional set of calls to getopt, and the variable optind must be reinitialized. sl@0: sl@0: The getopt function returns -1 when the argument list is exhausted. The interpretation of options in the argument list may be cancelled by the option ‘--’ (double dash) which causes getopt to signal the end of argument processing and return -1. When all options have been processed (i.e., up to the first non-option argument), getopt returns -1. sl@0: sl@0: Examples: sl@0: @code sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: int main() sl@0: { sl@0: int argc = 3; sl@0: sl@0: char *argv[] = sl@0: { sl@0: "getopt","-f","hi" sl@0: }; sl@0: sl@0: int bflag, ch, fd; sl@0: bflag = 0; sl@0: sl@0: while ((ch = getopt(argc, argv, "bf:")) != -1) { sl@0: sl@0: switch (ch) { sl@0: case 'b': sl@0: bflag = 1; sl@0: printf("option is 'b' \n"); sl@0: break; sl@0: case 'f': sl@0: printf("option is 'f' \n"); sl@0: if ((fd = open(optarg, O_RDONLY, 0)) != 0) { sl@0: (void)fprintf(stderr, sl@0: "myname: %s: %s\n", optarg, strerror(errno)); sl@0: } sl@0: break; sl@0: case '?': sl@0: printf("missing option!"); sl@0: default: sl@0: printf("unknown option!"); sl@0: } sl@0: sl@0: } sl@0: argc -= optind; sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: option is ’f’ sl@0: myname: hi: No such file or directory sl@0: @endcode sl@0: @see getopt_long() sl@0: sl@0: Bugs: sl@0: sl@0: The getopt function was once specified to return EOF instead of -1. This was changed by -p1003.2-92 to decouple getopt from sl@0: \#include \ sl@0: sl@0: A single dash "-" may be specified as a character in optstring, however it should never have an argument associated with it. This allows getopt to be used with programs that expect "-" as an option flag. This practice is wrong, and should not be used in any current development. It is provided for backward compatibility only. Care should be taken not to use ‘-’ as the first character in optstring to avoid a semantic conflict with GNU getopt, which assigns different meaning to an optstring that begins with a ‘-.’ By default, a single dash causes getopt to return -1. sl@0: sl@0: It is also possible to handle digits as option letters. This allows getopt to be used with programs that expect a number ("-3") as an option. This practice is wrong, and should not be used in any current development. It is provided for backward compatibility only. The following code fragment works in most cases. sl@0: sl@0: @code sl@0: int ch; sl@0: long length; sl@0: char *p, *ep; sl@0: while ((ch = getopt(argc, argv, "0123456789")) != -1) sl@0: switch (ch) { sl@0: case ’0’: case ’1’: case ’2’: case ’3’: case ’4’: sl@0: case ’5’: case ’6’: case ’7’: case ’8’: case ’9’: sl@0: p = argv[optind - 1]; sl@0: if (p[0] == ’-’ Am]Am] p[1] == ch Am]Am] !p[2]) { sl@0: length = ch - ’0’; sl@0: ep = ""; sl@0: } else if (argv[optind] Am]Am] argv[optind][1] == ch) { sl@0: length = strtol((p = argv[optind] + 1), sl@0: Am]ep, 10); sl@0: optind++; sl@0: optreset = 1; sl@0: } else sl@0: usage(); sl@0: if (*ep != ’\0’) sl@0: errx(EX_USAGE, "illegal number -- %s", p); sl@0: break; sl@0: } sl@0: @endcode sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn fsync(int fd) sl@0: @param fd sl@0: @return Upon successful completion, fsync() returns 0. Otherwise, it returns -1 and sets sl@0: errno to indicate the error. If the fsync() function fails, outstanding I/O operations sl@0: are not guaranteed to have been completed. sl@0: sl@0: The fsync system call sl@0: causes all modified data and attributes of fd to be moved to a permanent storage device. sl@0: This normally results in all in-core modified copies sl@0: of buffers for the associated file to be written to a disk. sl@0: sl@0: The fsync system call should be used by programs that require a file to sl@0: be in a known state, for example, when building a simple transaction facility. sl@0: sl@0: Examples: sl@0: @code sl@0: /* sl@0: * Detailed description : Simple usage of fsync system call. sl@0: * Preconditions : Example.txt if present should not a ready-only file sl@0: */ sl@0: #include sl@0: #include sl@0: int main() sl@0: { sl@0: int fd = 0; sl@0: fd = open("Example.txt" , O_CREAT | O_RDWR , 0666); sl@0: if(fd < 0 ) sl@0: { sl@0: printf("Failed to open file Example.txt"); sl@0: return -1; sl@0: } sl@0: if(fsync(fd) < 0 ) sl@0: { sl@0: printf("fsync system call failed"); sl@0: return -1; sl@0: } sl@0: close(fd); sl@0: printf("fsync system call succeeded"); sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: fsync system call succeeded sl@0: sl@0: @endcode sl@0: @see fsync() sl@0: @see sync() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn fdatasync(int filedesc) sl@0: @param filedesc sl@0: @return If successful the function returns 0, otherwise it returns (-1) and sets errno sl@0: to indicate the error. sl@0: sl@0: The fdatasync system call sl@0: causes all modified data and attributes of fd to be moved to a permanent storage device. sl@0: This normally results in all in-core modified copies sl@0: of buffers for the associated file to be written to a disk. sl@0: The fdatasync() function forces all the queued I/O operations associated that sl@0: file, as indicated by the file descriptor fd, to the synchronized I/O completion sl@0: state. sl@0: sl@0: The functionality shall be equivalent to fsync() with the symbol _POSIX_SYNCHRONIZED_IO sl@0: defined. This has an exception that all I/O operations shall be completed before sl@0: the call. sl@0: sl@0: sl@0: sl@0: The fdatasync should be used by programs that require a file to be in sl@0: a known state, for example when building a simple transaction facility. sl@0: sl@0: sl@0: sl@0: Examples: sl@0: @code sl@0: #include sl@0: #include sl@0: #define KMAXCHARS 100 sl@0: int test_fdatasync() sl@0: { sl@0: char* array = "abcdefghijklmnopqrstuvwxyz"; sl@0: struct stat buf; sl@0: if((fd = open(file , O_CREAT | O_RDWR , 0666)) < 0) sl@0: { sl@0: printf("Failed to create file"); sl@0: } sl@0: size_t size = write(fd,array, KMAXCHARS); sl@0: if(fdatasync(fd) < 0) sl@0: { sl@0: printf("Fdatasync failed"); sl@0: int retrn = remove(file); sl@0: return -1; sl@0: } sl@0: int retVal2 = fstat( fp, &buf; ); sl@0: if(!retVal2) sl@0: { sl@0: size_t bufsize = buf.st_size; sl@0: if (bufsize == size) sl@0: { sl@0: printf("file size = %d", size); sl@0: printf("Fdatasync passed"); sl@0: int retrn = remove(file); sl@0: return 0; sl@0: } sl@0: } sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: file size = 50 sl@0: Fdatasync passed sl@0: sl@0: @endcode sl@0: @see sync() sl@0: @see fsync() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn ftruncate(int filedesc, off_t length) sl@0: @param filedesc sl@0: @param length sl@0: sl@0: Refer to truncate() for documentation sl@0: sl@0: @see open() sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn ftruncate64(int filedesc, off64_t length) sl@0: @param filedesc sl@0: @param length sl@0: sl@0: For full documentation see: http://www.unix.org/version2/whatsnew/lfs20mar.html#3.0 sl@0: sl@0: @see ftruncate() sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn readlink(const char *path, char *buf, int bufsize) sl@0: @param path sl@0: @param buf sl@0: @param bufsize sl@0: @return The call returns the count of characters placed in the buffer sl@0: if it succeeds, or a -1 if an error occurs, placing the error sl@0: code in the global variable errno. sl@0: sl@0: The readlink system call sl@0: places the contents of the symbolic link path in the buffer buf, which has size bufsize. The readlink system call does not append a NULL character to buf. sl@0: sl@0: Examples: sl@0: @code sl@0: /* sl@0: * Detailed description: Example to read a link file sl@0: * Precondition: "Parent.txt" should exist in c: drive with some contents sl@0: * of length atleast 25 characters. And a link file by name sl@0: * "C:\Link" pointing to parent file should exist. sl@0: * sl@0: */ sl@0: #include sl@0: #include sl@0: int main(void) sl@0: { sl@0: char rdbuff[25]; sl@0: int retval; sl@0: if((retval = (readlink("C:\Link", rdbuff, (sizeof(char)*25)))) < 0) sl@0: { sl@0: printf("Read through link file failed"); sl@0: perror(" "); sl@0: return -1; sl@0: } sl@0: printf("Read through link file succeeded"); sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: Read through link file succeeded. sl@0: sl@0: @endcode sl@0: sl@0: Limitations: sl@0: sl@0: The path parameter of the readlink() function should not exceed 256 characters in length. sl@0: sl@0: @see lstat() sl@0: @see stat() sl@0: @see symlink() sl@0: @see symlink() sl@0: sl@0: sl@0: sl@0: @capability Deferred @ref RFs::Entry(const TDesC16&, TEntry&) sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn gethostname(char *name, size_t size) sl@0: @param name sl@0: @param size sl@0: @return On successful completion, 0 is returned. Otherwise, -1 is returned sl@0: sl@0: The gethostname() function returns the standard host name for the current machine. The size argument specifies the size of the array pointed to by the name argument. The returned name is null-terminated, except that if size is an insufficient length to hold the host name, then the returned name is truncated and it is unspecified whether the returned name is null-terminated. sl@0: Host names are limited to 255 bytes sl@0: sl@0: @see uname() sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn setegid(gid_t gid) sl@0: @param gid sl@0: sl@0: Refer to setuid() for the documentation sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn seteuid(uid_t uid) sl@0: @param uid sl@0: sl@0: Refer to setuid() for the documentation sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn symlink(const char *oldpath, const char *newpath) sl@0: @param oldpath sl@0: @param newpath sl@0: @return Upon successful completion, 0 is returned. Otherwise, -1 is returned and errno set to indicate the error. sl@0: sl@0: sl@0: sl@0: A symbolic link newpath is created to oldpath (newpath is the name of the file created, oldpath is the string used in creating the symbolic link). Either name sl@0: may be an arbitrary path name. sl@0: sl@0: The creation time stamp is not supported, only access and modification time sl@0: stamps. Creating a link in a directory will not alter the time stamps of the sl@0: directory itself. sl@0: sl@0: sl@0: sl@0: Examples: sl@0: @code sl@0: /* sl@0: * Detailed description : Example to create symlink to a file. sl@0: * Precondition : "Parent.txt" should exist in c: drive. sl@0: * Remarks : Symlink behaviour is exactly similar to link api. sl@0: */ sl@0: #include sl@0: #include sl@0: int main(void) sl@0: { sl@0: if(symlink("C:\Parent.txt","C:\Link") < 0) sl@0: { sl@0: printf("simulated link creation to parent file failed"); sl@0: return -1 ; sl@0: } sl@0: printf("simulated link to parent file created"); sl@0: return 0 ; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: simulated link to parent file created. sl@0: sl@0: @endcode sl@0: sl@0: Limitations: sl@0: sl@0: - The oldpath and newpath parameters of the symlink() function should not exceed 256 characters in length. sl@0: - P.I.P.S. does not support links across file systems. sl@0: - P.I.P.S. does not support symlink on directories or existing link files. sl@0: - P.I.P.S. only simulates link files and does not distinguish between hard and symbolic links so link() and symlink() on P.I.P.S. are identical. sl@0: - KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive sl@0: not found or filesystem not mounted on the drive. sl@0: sl@0: @see link() sl@0: @see lstat() sl@0: @see readlink() sl@0: @see unlink() sl@0: @see symlink() sl@0: sl@0: sl@0: sl@0: @capability Deferred @ref RFs::Delete(const TDesC16&) sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn fchdir(int filedesc) sl@0: @param filedesc sl@0: sl@0: Refer to chdir() for the documentation sl@0: sl@0: sl@0: sl@0: @capability Deferred @ref RFs::SetSessionPath(const TDesC16&) sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn getpgid(pid_t pid) sl@0: @param pid sl@0: sl@0: Refer to getpgrp() for the documentation sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn lchown(const char *path, uid_t owner, gid_t group) sl@0: @param path sl@0: @param owner sl@0: @param group sl@0: sl@0: Refer to chown() for the documentation sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn nice(int incr) sl@0: @param incr sl@0: sl@0: sl@0: The nice function obtains the scheduling priority of the process from sl@0: the system and sets it to the priority value specified in incr. The priority is a value in the range -20 to 20. The default priority sl@0: is 0. Lower priorities cause more favorable scheduling. sl@0: sl@0: sl@0: sl@0: Examples: sl@0: @code sl@0: #include sl@0: #include sl@0: int test_nice() sl@0: { sl@0: int retVal; sl@0: errno = 0; sl@0: int i = -10; sl@0: int ret_get1 = getpriority(PRIO_PROCESS,0); sl@0: retVal = nice(i); sl@0: int ret_get2 = getpriority(PRIO_PROCESS,0); sl@0: if((retVal == -1)&&(errno)) sl@0: { sl@0: printf("failed"); sl@0: return -1; sl@0: } sl@0: else sl@0: { sl@0: if(!(i - (ret_get2 - retget1))) sl@0: printf("Nice value: %d", i) sl@0: printf("nice passed"); sl@0: } sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: Nice value: -10 sl@0: nice passed sl@0: sl@0: @endcode sl@0: @see getpriority() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn setpgrp(pid_t _pid, pid_t _pgrp) sl@0: @param _pid sl@0: @param _pgrp sl@0: sl@0: Refer to setpgid() for the documentation sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn setregid(gid_t rgid, gid_t egid) sl@0: @param rgid sl@0: @param egid sl@0: @return These functions always return 0. sl@0: sl@0: These functions are build supported but not available functionally. Symbian sl@0: OS does not support multiple users and groups. sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn setreuid(uid_t ruid, uid_t euid) sl@0: @param ruid sl@0: @param euid sl@0: @return These functions always return 0. sl@0: sl@0: These functions are build supported but not available functionally. Symbian sl@0: OS does not support multiple users and groups. sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn swab(const void *from, void *to, ssize_t len) sl@0: @param from sl@0: @param to sl@0: @param len sl@0: sl@0: The function swab copies len bytes from the location referenced by from to the location referenced by to, swapping adjacent bytes. sl@0: sl@0: The argument len must be an even number. sl@0: sl@0: Examples sl@0: @code sl@0: #include sl@0: #include sl@0: int main() sl@0: { sl@0: int i=0x00003366,j=0x0; sl@0: swab((void *)&i,(void *)&j,2); sl@0: if(j==0x6633) sl@0: printf("Ouput val = %#x\n",j); sl@0: return 0; sl@0: } sl@0: @endcode sl@0: sl@0: output sl@0: @code sl@0: Ouput val = 0x6633 sl@0: @endcode sl@0: @see bzero() sl@0: @see memset() sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn usleep(useconds_t microseconds) sl@0: @param microseconds sl@0: @return The usleep function returns the value 0 if successful; otherwise the value -1 is sl@0: returned and the global variable errno is set to indicate the error. sl@0: sl@0: The usleep function suspends execution of the calling process until either microseconds microseconds have elapsed or a signal is delivered to the process and its sl@0: action is to invoke a signal-catching function or to terminate the sl@0: process. sl@0: System activity may lengthen the sleep by an indeterminate amount. sl@0: sl@0: This function is implemented using nanosleep by pausing for microseconds microseconds or until a signal occurs. sl@0: Consequently, in this implementation, sl@0: sleeping has no effect on the state of process timers, sl@0: and there is no special handling for SIGALRM. sl@0: sl@0: Limitations: sl@0: sl@0: The signal related functionaities aren’t applicable to the symbian implementation as there is no support for signals from symbian. sl@0: sl@0: Examples: sl@0: @code sl@0: #include sl@0: #include sl@0: sl@0: int main() sl@0: { sl@0: unsigned long t = 2; sl@0: int i; sl@0: sl@0: i = usleep(t); sl@0: printf("Expected: 0 usleep returned: %d", i); sl@0: sl@0: return 0; sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: Expected: 0 usleep returned: 0 sl@0: sl@0: @endcode sl@0: @see nanosleep() sl@0: @see sleep() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn truncate(const char *file, off_t length) sl@0: @param file sl@0: @param length sl@0: @return Upon successful completion, both truncate() and ftruncate() shall return 0; otherwise, -1 shall be returned and errno set to indicate the error. sl@0: sl@0: sl@0: The truncate system call causes the file named by file or referenced by filedesc to be truncated to length bytes in size. If the file was larger than this size, the extra data is lost. If the file was smaller than this size, it will be extended as if by writing bytes with the value zero. With ftruncate, the file must be open for writing. sl@0: sl@0: Examples: sl@0: @code sl@0: //example for truncate sl@0: #include sl@0: #include sl@0: #include sl@0: int test_truncate() sl@0: { sl@0: int retVal, retVal2, retSize, retSize2; sl@0: struct stat buf; sl@0: ssize_t size; sl@0: char *buffer = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx"; sl@0: int fp = open("c:\test.txt", O_RDWR|O_CREAT); sl@0: size = write(fp,buffer,50); sl@0: close(fp); sl@0: retVal2 = stat("c:\test.txt", &buf ); sl@0: if ( !retVal2 ) sl@0: { sl@0: retSize = buf.st_size; sl@0: printf("Size before: %d", retSize); sl@0: retVal = truncate("c:\test.txt", retSize/2 ); sl@0: } sl@0: else sl@0: { sl@0: printf("Failed"); sl@0: } sl@0: retVal2 = stat( "c:\test.txt", &buf ); sl@0: if ( !retVal2 ) sl@0: { sl@0: retSize2 = buf.st_size; sl@0: if( retSize2 == (retSize/2 ) ) sl@0: { sl@0: printf("\nSize after: %d\n", retSize2); sl@0: printf("Truncate passed"); sl@0: return 0; sl@0: } sl@0: else sl@0: { sl@0: printf("Failed"); sl@0: return -1; sl@0: } sl@0: } sl@0: else sl@0: { sl@0: printf("Failed"); sl@0: return -1; sl@0: } sl@0: } sl@0: @endcode sl@0: Output sl@0: @code sl@0: Size before: 50 sl@0: Size after: 25 sl@0: Ttruncate Passed sl@0: @endcode sl@0: sl@0: Errors: sl@0: sl@0: The truncate and ftruncate succeed unless: sl@0: [EBADF] The filedesc argument is not a valid descriptor for a regular file. sl@0: [EINVAL] The filedesc argument references to an object other than a file. sl@0: [EINVAL] The filedesc descriptor is not open for writing. sl@0: sl@0: sl@0: Bugs: sl@0: sl@0: These calls should be generalized to allow ranges of bytes in a file to be discarded. sl@0: Use of truncate to extend a file is not portable. sl@0: @see open() sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn truncate64(const char *file, off64_t length) sl@0: @param file sl@0: @param length sl@0: @return Upon successful completion, both truncate64() and ftruncate64() shall return 0; otherwise, -1 shall be returned and errno set to indicate the error. sl@0: sl@0: For full documentation see: http://www.unix.org/version2/whatsnew/lfs20mar.html#3.0 sl@0: sl@0: @see truncate() sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn brk(const void*) sl@0: sl@0: @return Function always returns 0. sl@0: sl@0: The brk function is used to change the amount of memory allocated in a sl@0: process's data segment.It does this by moving the location of the "break". sl@0: This functionality is not supported by the Symbian OS platform and hence sl@0: is only build supported. sl@0: sl@0: sl@0: sl@0: @see mmap() sl@0: @see free() sl@0: @see malloc() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn getdtablesize(void) sl@0: @return sl@0: sl@0: Each process has a fixed size descriptor table, sl@0: which is guaranteed to have at least 20 slots. sl@0: The entries in sl@0: the descriptor table are numbered with small integers starting at 0. sl@0: The getdtablesize system call returns the size of this table. sl@0: sl@0: Examples: sl@0: @code sl@0: #include sl@0: int main() sl@0: { sl@0: printf("maximum number of files that can be opened by a process is %d",getdtablesize()); sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: maximum number of files that can be opened by a process is 1024 sl@0: sl@0: @endcode sl@0: @see close() sl@0: @see dup() sl@0: @see open() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn getpagesize(void) sl@0: The getpagesize function sl@0: returns the number of bytes in a page. sl@0: Page granularity is the granularity of many of the memory sl@0: management calls. sl@0: sl@0: The page size is a system sl@0: page size and may not be the same as the underlying sl@0: hardware page size. sl@0: sl@0: Examples: sl@0: @code sl@0: #include sl@0: #include sl@0: int test_getpagesize() sl@0: { sl@0: int retVal = 0; sl@0: retVal = getpagesize(); sl@0: if( retVal >= 0) sl@0: { sl@0: printf("getpagesize passed"); sl@0: printf(" sl@0: retVal = %d " retVal); sl@0: return retVal; sl@0: } sl@0: else sl@0: { sl@0: printf("Failed"); sl@0: return -1; sl@0: } sl@0: } sl@0: sl@0: @endcode sl@0: Output sl@0: @code sl@0: getpagesize passed sl@0: retVal = 4096 sl@0: sl@0: @endcode sl@0: @see sbrk() sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn initgroups(const char *, gid_t) sl@0: sl@0: @return These functions always return 0. sl@0: sl@0: sl@0: sl@0: The getgroups function is build supported but not available functionally. sl@0: Symbian OS does not support multiple users and groups. sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn issetugid(void) sl@0: @return The issetugid() function returns 1 if the process was made setuid or setgid as the result of the last or a previous call to execve(). Otherwise it returns 0 sl@0: sl@0: The issetugid() function enables library functions (in lib-termlib, libc, or other libraries) to guarantee safe behavior when used in setuid or setgid programs. Some library functions might be passed insufficient informationand not know whether the current program was started setuidor setgid because a higher level calling code might have made changes to the uid, euid, gid, or egid. These low-levellibrary functions are therefore unable to determine if theyare being run with elevated or normal privileges. sl@0: sl@0: Errors: sl@0: sl@0: The issetugid() function is always successful. No return value is reserved to indicate an error. sl@0: g sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn mkstemp(char *template) sl@0: @param template sl@0: @return The mkstemp function returns -1 if no suitable file could be created and an error code is placed in the global variable. errno. sl@0: sl@0: The mkstemp function takes the given file name template and overwrites a portion of it to create a file with that name and returns a file descriptor opened for reading and writing. This file name is guaranteed not to exist at the time of function invocation and is suitable for use by the application. The template may be any file name with some number of ‘X s’ appended to it, for example /tmp/temp.XXXXXX. The trailing ‘X s’ are replaced with a unique alphanumeric combination. The number of unique file names mkstemp can return depends on the number of ‘X s’ provided; six ‘X s’ will result in mkstemp selecting one of 56800235584 (62 ** 6) possible temporary file names. sl@0: sl@0: Errors: sl@0: sl@0: The mkstemp function may set errno to one of the following values: sl@0: [ENOTDIR] The pathname portion of the template is not an existing directory. sl@0: The mkstemp function may also set errno to any value specified by the stat function. sl@0: The mkstemp function may also set errno to any value specified by the open function. sl@0: sl@0: Examples: sl@0: @code sl@0: #include sl@0: #include //printf, SEEK_SET sl@0: #include sl@0: sl@0: int main( void ) sl@0: { sl@0: char arr[] = "c:\\someXXXXXXXX"; sl@0: char buf[10]; sl@0: sl@0: //create a temporary file using mkstemp() sl@0: int fd = mkstemp(arr); sl@0: sl@0: if(fd != -1) sl@0: { sl@0: //write to the file sl@0: write(fd, "hello", 5); sl@0: //seek to the beginning of the file sl@0: lseek(fd, 0, SEEK_SET); //beg of the file sl@0: //read from the file sl@0: read(fd, buf, 5); sl@0: buf[5] = '\0'; sl@0: //close the file sl@0: close(fd); sl@0: } sl@0: sl@0: printf("buf read: %s", buf); sl@0: return 0; sl@0: } sl@0: @endcode sl@0: sl@0: Output sl@0: @code sl@0: buf read: hello sl@0: @endcode sl@0: sl@0: Limitations: sl@0: sl@0: The template parameter of the mkstemp() function should not exceed 256 characters in length. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn mkstemp64(char *template) sl@0: @param template sl@0: @return The mkstemp64 function sl@0: returns -1 if no suitable file could be created sl@0: and an error code is placed in the global variable. errno. sl@0: sl@0: The mkstemp64() function generates a unique temporary file name from template. The last six characters of template must be XXXXXX and these are replaced with a string that makes the filename unique. sl@0: sl@0: The mkstemp64() function is a 64-bit version of mkstemp. sl@0: sl@0: @see mkstemp() sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn select(int maxfd, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *tvptr) sl@0: @param maxfd sl@0: @param readfds sl@0: @param writefds sl@0: @param exceptfds sl@0: @param tvptr sl@0: @return The select system call sl@0: returns the number of ready descriptors that are contained in sl@0: the descriptor sets, sl@0: or -1 if an error occurred. sl@0: If the time limit expires, select returns 0. sl@0: If select returns with an error, sl@0: the descriptor sets will be unmodified. sl@0: sl@0: The select system call sl@0: examines the I/O descriptor sets whose addresses are passed in readfds, writefds, and exceptfds to see if some of their descriptors sl@0: are ready for reading, are ready for writing, or have an exceptional sl@0: condition pending, respectively. sl@0: The only exceptional condition detectable is out-of-band sl@0: data received on a socket. sl@0: The first maxfd descriptors are checked in each set; sl@0: i.e., the descriptors from 0 through maxfd -1 in the descriptor sets are examined. sl@0: On return, select replaces the given descriptor sets sl@0: with subsets consisting of those descriptors that are ready sl@0: for the requested operation. sl@0: The select system call sl@0: returns the total number of ready descriptors in all the sets. sl@0: sl@0: The descriptor sets are stored as bit fields in arrays of integers. sl@0: The following macros are provided for manipulating such descriptor sets: sl@0: sl@0: @code sl@0: FD_ZERO (&fdset;); initializes a descriptor set fdset to the null set. sl@0: FD_SET (fd, &fdset;); includes a particular descriptor fd in fdset. sl@0: FD_CLR (fd, &fdset;); removes fd from fdset. sl@0: FD_ISSET (fd, &fdset;); is non-zero if fd is a member of fdset, zero otherwise. sl@0: @endcode sl@0: sl@0: The behavior of these macros is undefined if sl@0: a descriptor value is less than zero or greater than or equal to FD_SETSIZE, which is normally at least equal sl@0: to the maximum number of descriptors supported by the system. sl@0: sl@0: If tvptr is not a null pointer, it specifies the maximum interval to wait for the sl@0: selection to complete. sl@0: System activity can lengthen the interval by sl@0: an indeterminate amount. sl@0: sl@0: To effect a poll, the tvptr argument should not be a null pointer, sl@0: but it should point to a zero-valued timeval structure. sl@0: sl@0: Any of readfds, writefds, and exceptfds may be given as null pointers if no descriptors are of interest. sl@0: sl@0: Errors: sl@0: sl@0: An error return from select indicates: sl@0: [EBADF] One of the descriptor sets specified an invalid descriptor. sl@0: [EFAULT] One of the arguments readfds, writefds, exceptfds, or tvptr points to an invalid address. sl@0: [EINVAL] The specified time limit is invalid. One of its components is negative or too large. sl@0: [EINVAL] The maxfd argument was invalid. sl@0: sl@0: Limitations: sl@0: sl@0: select is not interrupted by signals, as signals are not supported by sl@0: Symbian OS. If tvptr is set to null, select does not block forever, but waits for a maximum of 10 seconds sl@0: and returns. select cannot be called a second time on the same socket descriptor sl@0: before the first select operation on the same socket descriptor completes. (i.e) Only sl@0: one select operation can be outstanding on a Socket. This is because of sl@0: the limitation of the underlying Ioctl operation. Only one Ioctl operation may be outstanding for each socket. sl@0: Examples: sl@0: @code sl@0: #include sl@0: #include sl@0: /* sl@0: * A simple example of testing a single FD for readability sl@0: * This example returns 1 when the fd is ready for reading. sl@0: */ sl@0: #include sl@0: #include sl@0: /* sl@0: * A simple example of testing a single FD for readability sl@0: * This example returns 1 when the fd is ready for reading. sl@0: */ sl@0: int isready(int fd) sl@0: { sl@0: int rc; sl@0: fd_set fds; sl@0: struct timeval tv; sl@0: sl@0: /* sl@0: * FD_ZERO() clears out the fd_set called fds, so that sl@0: * it doesn’t contain any file descriptors. sl@0: */ sl@0: FD_ZERO(&fds); sl@0: /* sl@0: * FD_SET() adds the file descriptor "fd" to the fd_set, sl@0: * so that select() will return if fd is readable sl@0: */ sl@0: FD_SET(fd,&fds); sl@0: tv.tv_sec = tv.tv_usec = 0; sl@0: /* sl@0: * The first argument to select is the highest file sl@0: * descriptor value plus 1. sl@0: */ sl@0: sl@0: /* The second argument to select() is the address of sl@0: * the fd_set that contains fd’s we’re waiting sl@0: * to be readable. sl@0: */ sl@0: sl@0: /* The third parameter is an fd_set that you want to sl@0: * know if you can write on -- this example doesn’t sl@0: * use it, so it passes 0, or NULL. sl@0: */ sl@0: /* The fourth parameter is sockets you’re waiting for sl@0: * out-of-band data for. sl@0: */ sl@0: sl@0: /* The last parameter to select() is a time-out of how sl@0: * long select() should block. sl@0: */ sl@0: rc = select(fd+1, &fds, NULL, NULL, &tv); sl@0: /* select() returns the number of fd’s that are ready sl@0: * Once select() returns, the original fd_set has been sl@0: * modified so it now reflects the state of why select() sl@0: * woke up. i.e. If file descriptor 4 was originally in sl@0: * the fd_set, and then it became readable, the fd_set sl@0: * contains file descriptor 4 in it. sl@0: */ sl@0: if (rc < 0) sl@0: return -1; sl@0: return FD_ISSET(fd,&fds) ? 1 : 0; sl@0: } sl@0: @endcode sl@0: @see accept() sl@0: @see connect() sl@0: @see getdtablesize() sl@0: @see gettimeofday() sl@0: @see read() sl@0: @see recv() sl@0: @see send() sl@0: @see write() sl@0: sl@0: sl@0: Notes: sl@0: sl@0: The default size of FD_SETSIZE is currently set to 1024. sl@0: In order to accommodate programs which might potentially sl@0: use a larger number of open files with select, it is possible sl@0: to increase this size by having the program define FD_SETSIZE before the inclusion of any header which includes sl@0: sl@0: \#include \< sys/types.h \> sl@0: sl@0: If maxfd is greater than the number of open files, select is not guaranteed to examine the unused file descriptors. For sl@0: historical reasons, select will always examine the first 256 descriptors. sl@0: sl@0: The select system call appeared in BSD 4.2. sl@0: sl@0: Bugs: sl@0: sl@0: -susv2 allows systems to modify the original tvptr in place. sl@0: Thus, it is unwise to assume that the tvptr value will be unmodified sl@0: by the select system call. sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @fn setgroups(int, const gid_t *) sl@0: sl@0: Refer to getgrent() for the documentation sl@0: sl@0: sl@0: sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: sl@0: /** @fn alarm(unsigned int seconds) sl@0: @param seconds - sl@0: @return - sl@0: sl@0: For full documentation see: http://www.opengroup.org/onlinepubs/009695399/functions/alarm.html sl@0: sl@0: The Symbian implementation of this API fully supports POSIX functionality. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def environ sl@0: sl@0: Environment variable. sl@0: sl@0: @publishedAll sl@0: @released sl@0: */ sl@0: sl@0: /** @def STDIN_FILENO sl@0: sl@0: standard input file descriptor sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def STDOUT_FILENO sl@0: sl@0: standard output file descriptor sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def STDERR_FILENO sl@0: sl@0: standard error file descriptor sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def F_ULOCK sl@0: sl@0: unlock locked section sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def F_LOCK sl@0: sl@0: lock a section for exclusive use sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def F_TLOCK sl@0: sl@0: test and lock a section for exclusive use sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def F_TEST sl@0: sl@0: test a section for locks by other procs sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_ARG_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_CHILD_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_CLK_TCK sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_NGROUPS_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_OPEN_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_JOB_CONTROL sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_SAVED_IDS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_VERSION sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_BC_BASE_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_BC_DIM_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_BC_SCALE_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_BC_STRING_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_COLL_WEIGHTS_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_EXPR_NEST_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_LINE_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_RE_DUP_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_VERSION sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_C_BIND sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_C_DEV sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_CHAR_TERM sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_FORT_DEV sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_FORT_RUN sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_LOCALEDEF sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_SW_DEV sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_UPE sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_STREAM_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_TZNAME_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_ASYNCHRONOUS_IO sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_MAPPED_FILES sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_MEMLOCK sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_MEMLOCK_RANGE sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_MEMORY_PROTECTION sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_MESSAGE_PASSING sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_PRIORITIZED_IO sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_PRIORITY_SCHEDULING sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_REALTIME_SIGNALS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_SEMAPHORES sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_FSYNC sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_SHARED_MEMORY_OBJECTS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_SYNCHRONIZED_IO sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_TIMERS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_AIO_LISTIO_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_AIO_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_AIO_PRIO_DELTA_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_DELAYTIMER_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_MQ_OPEN_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_PAGESIZE sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_RTSIG_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_SEM_NSEMS_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_SEM_VALUE_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_SIGQUEUE_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_TIMER_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_PBS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_PBS_ACCOUNTING sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_PBS_CHECKPOINT sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_PBS_LOCATE sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_PBS_MESSAGE sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_2_PBS_TRACK sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_ADVISORY_INFO sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_BARRIERS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_CLOCK_SELECTION sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_CPUTIME sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_FILE_LOCKING sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_GETGR_R_SIZE_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_GETPW_R_SIZE_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_HOST_NAME_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_LOGIN_NAME_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_MONOTONIC_CLOCK sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_MQ_PRIO_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_READER_WRITER_LOCKS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_REGEXP sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_SHELL sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_SPAWN sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_SPIN_LOCKS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_SPORADIC_SERVER sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREAD_ATTR_STACKADDR sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREAD_ATTR_STACKSIZE sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREAD_CPUTIME sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREAD_DESTRUCTOR_ITERATIONS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREAD_KEYS_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREAD_PRIO_INHERIT sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREAD_PRIO_PROTECT sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREAD_PRIORITY_SCHEDULING sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREAD_PROCESS_SHARED sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREAD_SAFE_FUNCTIONS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREAD_SPORADIC_SERVER sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREAD_STACK_MIN sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREAD_THREADS_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_TIMEOUTS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_THREADS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_TRACE sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_TRACE_EVENT_FILTER sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_TRACE_INHERIT sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_TRACE_LOG sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_TTY_NAME_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_TYPED_MEMORY_OBJECTS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_V6_ILP32_OFF32 sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_V6_ILP32_OFFBIG sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_V6_LP64_OFF64 sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_V6_LPBIG_OFFBIG sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_IPV6 sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_RAW_SOCKETS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_SYMLOOP_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_ATEXIT_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_IOV_MAX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_PAGE_SIZE sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_XOPEN_CRYPT sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_XOPEN_ENH_I18N sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_XOPEN_LEGACY sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_XOPEN_REALTIME sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_XOPEN_REALTIME_THREADS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_XOPEN_SHM sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_XOPEN_STREAMS sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_XOPEN_UNIX sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_XOPEN_VERSION sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _SC_XOPEN_XCU_VERSION sl@0: sl@0: POSIX-style system configuration variable accessors (for the sysconf function). sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _CS_PATH sl@0: sl@0: Keys for the confstr(3) function. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _CS_POSIX_V6_ILP32_OFF32_CFLAGS sl@0: sl@0: Keys for the confstr(3) function. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _CS_POSIX_V6_ILP32_OFF32_LDFLAGS sl@0: sl@0: Keys for the confstr(3) function. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _CS_POSIX_V6_ILP32_OFF32_LIBS sl@0: sl@0: Keys for the confstr(3) function. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS sl@0: sl@0: Keys for the confstr(3) function. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS sl@0: sl@0: Keys for the confstr(3) function. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _CS_POSIX_V6_LP64_OFF64_CFLAGS sl@0: sl@0: Keys for the confstr(3) function. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _CS_POSIX_V6_LP64_OFF64_CFLAGS sl@0: sl@0: Keys for the confstr(3) function. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _CS_POSIX_V6_LP64_OFF64_LDFLAGS sl@0: sl@0: Keys for the confstr(3) function. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _CS_POSIX_V6_LP64_OFF64_LIBS sl@0: sl@0: Keys for the confstr(3) function. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS sl@0: sl@0: Keys for the confstr(3) function. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def optopt sl@0: sl@0: character checked for validity sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def opterr sl@0: sl@0: if error message should be printed sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def optind sl@0: sl@0: index into parent argv vector sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def optarg sl@0: sl@0: argument associated with option sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @def optreset sl@0: sl@0: reset getopt sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @typedef typedef __off_t off_t sl@0: sl@0: Used for file sizes. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @typedef typedef __gid_t gid_t sl@0: sl@0: Used for group IDs. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @typedef typedef __pid_t pid_t sl@0: sl@0: Used for process IDs and process group IDs. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @typedef typedef __size_t size_t sl@0: sl@0: Used for sizes of objects. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @typedef typedef __uid_t uid_t sl@0: sl@0: Used for user IDs. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: /** @typedef typedef __useconds_t useconds_t sl@0: sl@0: Used for time in microseconds. sl@0: sl@0: @publishedAll sl@0: @externallyDefinedApi sl@0: */ sl@0: sl@0: sl@0: sl@0: sl@0: