|
|
clib
Index
int __get_default_file(
int file_descriptor,
long * file_handle)
Gets dos.library file handle associated with a given file descriptor.
file_descriptor - the File Descriptor you wish to obtain the associated
file handle for.
file_handle - Pointer to store the associated file handle.
!=0 on error, 0 on success.
This function is not a part of the ISO C standard, it comes from clib2
project and was implemented to make porting of abc-shell easier.
const char *__path_a2u(
const char *apath)
Translates an AmigaDOS-style path into an unix one.
apath - AmigaDOS-style path to translate into an unix-style equivalent.
A pointer to a string containing the unix-style path, or NULL in
case of error.
The pointer is valid only until next call to this function, so if
you need to call this function recursively, you must save the string
pointed to by the pointer before calling this function again.
This function is for private usage by system code. Do not use it
elsewhere.
const char *__path_u2a(
const char *upath)
Translates an unix-style path into an AmigaDOS one.
upath - Unix-style path to translate into an AmigaDOS-style equivalent.
A pointer to a string containing the AmigaDOS-style path, or NULL in
case of error.
The pointer is valid only until next call to this function, so if
you need to call this function recursively, you must save the string
pointed to by the pointer before calling this function again.
This function is for private usage by system code. Do not use it
elsewhere.
int __spawnv(
int mode,
const char *filename,
int searchpath,
char *const argv[])
Spawn a child process, given a vector of arguments and an already LoadSeg()'d executable.
mode - the way the child process has to be loaded, and how the parent has to behave
after the child process is initiated. Specify one of the following values:
P_WAIT - the child program is loaded into memory, then it's executed while
the parent process waits for it to terminate, at which point the
patent process resumes execution.
P_NOWAIT - the parent program is executed concurrently with the new child process.
P_OVERLAY - teplace the parent program with the child program in memory and then
execute the child. The parent program will never be resumed. This
mode is equivalent to calling one of the exec*() functions.
filename - command to execute
searchpath - boolean to indicate if path should be searched for command
argv - a pointer to a NULL terminated array of strings representing arguments to pass
to the child process. The first entry in the array is conventionally the name of
the program to spawn, but in any case it must _never_ be NULL, and the argv
pointer itself must never be NULL either.
If P_WAIT is specified, then the return code of the child program is returned.
If instead P_NOWAIT is used, then the pid of the newly created process is returned.
Finally, if P_OVERLAY is used, the function doesn't return unless an error has occurred,
in which case -1 is returned also for the other modes and the global errno variable will
hold the proper error code.
The way the child process behaves regarding parent's file descriptors, signal handlers
and so on is the same way it would behave with one of the exec*(3) functions.
This, for one, means that all filedescriptors are inherited except the ones which have
the close-on-exec flag set.
int __vcformat(
void * data,
int (* outc)(int, void *),
const char * format,
va_list args)
Format a list of arguments and call a function for each char
to print.
data - This is passed to the usercallback outc
outc - Call this function for every character that should be
emitted. The function should return EOF on error and
> 0 otherwise.
format - A printf() format string.
args - A list of arguments for the format string.
The number of characters written.
int __vcscan(
void * data,
int (* getc)(void *),
int (* ungetc)(int,void *),
const char * format,
va_list args)
Scan an input stream as specified in format. The result of
the scan will be placed in args.
data - This is passed to the usercallback getc and ungetc
getc - This function gets called when the routine wants to
read the next character. It whould return EOF when
no more characters are available.
ungetc - This function gets called when the routine wants to
put a read character back into the stream. The next
call to getc should return this character. It is possible
that this function is called more than once before the
next getc.
format - A scanf() format string.
args - A list of arguments in which the result of the scan should
be placed.
The number of arguments converted.
Terminates the running program immediately. The code is returned to
the program which has called the running program. In contrast to
exit(), this function does not call user exit-handlers added with
atexit() or on_exit(). It does, however, close open filehandles.
code - Exit code. 0 for success, other values for failure.
None. This function does not return.
This function must not be used in a shared library or in a threaded
application.
EXAMPLE
Currently, this function *does* trigger user exit-handlers to be
called.
Causes abnormal program termination. If there is a signal handler
for SIGABORT, then the handler will be called. If the handler
returns, then the program is continued.
None. This function does not return.
if (fatal_error)
abort ();
This function must not be used in a shared library or
in a threaded application.
Signal handling is not implemented yet.
Compute the absolute value of j.
// returns 1
abs (1);
// returns 1
abs (-1);
int access(
const char *path,
int mode)
Check access permissions of a file or pathname
path - the path of the file being checked
mode - the bitwise inclusive OR of the access permissions
to be checked:
W_OK - for write permission
R_OK - for readpermissions
X_OK - for execute permission
F_OK - Just to see whether the file exists
If path cannot be found or if any of the desired access
modes would not be granted, then a -1 value is returned;
otherwise a 0 value is returned.
char * asctime(
const struct tm * tm)
The asctime() function converts the broken-down time value tm
into a string.
See asctime_r() for details.
tm - The broken down time
A statically allocated buffer with the converted time. Note that
the contents of the buffer might get lost with the call of any of the
date and time functions.
time_t tt;
struct tm * tm;
char * str;
// Get time
time (&tt);
// Break time up
tm = localtime (&tt);
// Convert to string
str = asctime (tm);
This function must not be used in a shared library or
in a threaded application. Use asctime_r() instead.
char * asctime_r(
const struct tm * tm,
char * buf)
The asctime_r() function converts the broken-down time value tm
into a string with this format:
"Wed Jun 30 21:49:08 1993\n"
tm - The broken down time
buf - Buffer of at least 26 characters to store the string in
The pointer passed in buf, containing the converted time. Note that
there is a newline at the end of the buffer.
time_t tt;
struct tm tm;
char str[26];
// Get time
time (&tt);
// Break time up
localtime (&tt, &tm);
// Convert to string
asctime (&tm, str);
Evaluates the expression expr and if it's FALSE or NULL, then
printf a message and stops the program. The message will
contain the expression, the name of the file with the assert
in it and the line in the file.
expr - The expression to evaluate. The type of the expression does
not matter, only if its zero/NULL or not.
The function doesn't return.
// Make sure that x equals 1
assert (x==1);
int atexit(
void (*func)(void))
Registers the given function to be called at normal
process termination.
func - function to be called.
double atof(
const char * str)
Convert a string of digits into a double.
str - The string which should be converted. Leading
whitespace are ignored. The number may be prefixed
by a '+' or '-'.
int atoi(
const char * str)
Convert a string of digits into an integer.
str - The string which should be converted. Leading
whitespace are ignored. The number may be prefixed
by a '+' or '-'.
// returns 1
atoi (" \t +1");
// returns 1
atoi ("1");
// returns -1
atoi (" \n -1");
long atol(
const char * str)
Convert a string of digits into an long integer.
str - The string which should be converted. Leading
whitespace are ignored. The number may be prefixed
by a '+' or '-'.
// returns 1
atol (" \t +1");
// returns 1
atol ("1");
// returns -1
atol (" \n -1");
char *basename(
char *filename)
Returns the part after the latest '/' of a path.
Trailing '/' are not counted as part of the path.
filename - Path which should be split.
Rightmost part of the path.
int bcmp(
const void * s1,
const void * s2,
size_t n)
Compare the first n bytes of s1 and s2.
s1 - The first byte array to be compared
s2 - The second byte array to be compared
n - How many bytes to compare
void * bsearch(
const void * key,
const void * base,
size_t count,
size_t size,
int (* comparefunction)(const void *, const void *))
Search in a sorted array for an entry key.
key - Look for this key.
base - This is the address of the first element in the array
to be searched. Note that the array *must* be sorted.
count - The number of elements in the array
size - The size of one element
comparefunction - The function which is called when two elements
must be compared. The function gets the addresses of two
elements of the array and must return 0 is both are equal,
< 0 if the first element is less than the second and > 0
otherwise.
A pointer to the element which equals key in the array or NULL if
no such element could be found.
void bzero(
void * ptr,
size_t len)
Write len zero bytes to ptr. If len is zero, does nothing.
ptr - The first byte of the area in memory to be cleared.
len - How many bytes to clear.
void * calloc(
size_t count,
size_t size)
Allocate size bytes of memory, clears the memory (sets all bytes to
0) and returns the address of the first byte.
count - How many time size
size - How much memory to allocate.
A pointer to the allocated memory or NULL. If you don't need the
memory anymore, you can pass this pointer to free(). If you don't,
the memory will be freed for you when the application exits.
This function must not be used in a shared library or
in a threaded application.
int chdir(
const char *path )
Change the current working directory to the one specified by path.
path - Path of the directory to change to.
If the current directory was changed successfully, zero is returned.
Otherwise, -1 is returned and errno set apropriately.
At program exit, the current working directory will be changed back
to the one that was current when the program first started. If you
do not desire this behaviour, use dos.library/CurrentDir() instead.
The path given to chdir can be translated so that getcwd gives back
a string that is not the same but points to th same directory. For
example, assigns are replaced by the path where the assign points to
and device names (like DH0:) are replaced with the volume name
(e.g. Workbench:).
int chmod(
const char *path,
mode_t mode)
Change permission bits of a specified file.
path - Pathname of the file
mode - Bit mask created by ORing zero or more of the following
permission bit masks:
S_ISUID - set user id on execution
S_ISGID - set group id on execution
S_ISVTX - sticky bit (restricted deletion flag)
S_IRUSR - allow owner to read
S_IWUSR - allow owner to write
S_IXUSR - allow owner to execute/search directory
S_IRGRP - allow group to read
S_IWGRP - allow group to write
S_IXGRP - allow group to execute/search directory
S_IROTH - allow others to read
S_IWOTH - allow others to write
S_IXOTH - allow others to execute/search directory
0 on success and -1 on error. If an error occurred, the global
variable errno is set.
S_ISUID and S_ISGID are silently ignored.
int chown(
const char *path,
uid_t owner,
gid_t group)
Change the user and group ownership of a file.
path - the path to file
owner - new owner ID
group - new group ID
0 on success and -1 on error. If an error occurred, the global
variable errno is set.
This implementation was done by looking at Olaf 'Olsen' Barthels
clib2.
void clearerr(
FILE * stream)
Clear EOF and error flag in a stream. You must call this for
example after you have read the file until EOF, then appended
something to it and want to continue reading.
stream - The stream to be reset.
clock() returns an approximation of the time passed since
the program was started
The time passed in CLOCKS_PER_SEC units. To get the
number of seconds divide by CLOCKS_PER_SEC.
This function must not be used in a shared library or
in a threaded application.
Closes an open file. If this is the last file descriptor
associated with this file, then all allocated resources
are freed, too.
fd - The result of a successful open()
-1 for error or zero on success.
This function must not be used in a shared library or
in a threaded application.
dir - the directory stream pointing to the directory being closed
The closedir() function returns 0 on success or -1 on
failure.
int creat(
const char * pathname,
int mode)
Creates a file with the specified mode and name.
pathname - Path and filename of the file you want to open.
mode - The access flags.
-1 for error or a file descriptor for use with write().
If the filesystem doesn't allow to specify different access modes
for users, groups and others, then the user modes are used.
This is the same as open (pathname, O_CREAT|O_WRONLY|O_TRUNC, mode);
This function must not be used in a shared library or
in a threaded application.
char * ctime(
const time_t * tt)
The ctime() function converts the broken-down time value tt
into a string.
See ctime_r() for details.
A statically allocated buffer with the converted time. Note that
the contents of the buffer might get lost with the call of any of the
date and time functions.
time_t tt;
char * str;
// Get time
time (&tt);
// Convert to string
str = ctime (&tt);
This function must not be used in a shared library or
in a threaded application. Use ctime_r() instead.
char * ctime_r(
const time_t * tt,
char * buf)
The ctime_r() function converts the time value tt into a string with
this format:
"Wed Jun 30 21:49:08 1993\n"
tt - Convert this time.
buf - Buffer of at least 26 characters to store the string in
The pointer passed in buf, containing the converted time. Note that
there is a newline at the end of the buffer.
time_t tt;
char str[26];
// Get time
time (&tt);
// Convert to string
ctime (&tt, str);
double difftime(
time_t time2,
time_t time1)
difftime() returns the number of seconds elapsed between
time time2 and time time1.
time2 - time value from which time1 is subtracted
time1 - time value that is subtracted from time2
The number of seconds elapsed in double precision.
time_t tt1, tt2;
double secs;
time (&tt1);
...
time (&tt2);
secs = difftime(tt2, tt1);
get directory stream file descriptor
dir - directory stream dir.
This descriptor is the one used internally by the directory stream. As
a result, it is only useful for functions which do not depend on or
alter the file position, such as fstat(2) and fchdir(2). It will be
automatically closed when closedir(3) is called.
char *dirname(
char *filename)
Returns the string up to the latest '/'.
filename - Path which should be split
Directory part of the path.
div_t div(
int numer,
int denom)
Compute quotient en remainder of two int variables
numer = the numerator
denom = the denominator
a struct with two ints quot and rem with
quot = numer / denom and rem = numer % denom.
typedef struct div_t {
int quot;
int rem;
} div_t;
NOTES
Duplicates a file descriptor.
The object referenced by the descriptor does not distinguish between oldd
and newd in any way. Thus if newd and oldd are duplicate references to
an open file, read(), write() and lseek() calls all move a single
pointer into the file, and append mode, non-blocking I/O and asynchronous
I/O options are shared between the references. If a separate pointer
into the file is desired, a different object reference to the file must be
obtained by issuing an additional open(2) call. The close-on-exec flag
on the new file descriptor is unset.
oldfd - The file descriptor to be duplicated
-1 for error or the new descriptor.
The new descriptor returned by the call is the lowest numbered
descriptor currently not in use by the process.
This function must not be used in a shared library or
in a threaded application.
int dup2(
int oldfd,
int newfd
)
Duplicates a file descriptor.
The object referenced by the descriptor does not distinguish between oldd
and newd in any way. Thus if newd and oldd are duplicate references to
an open file, read(), write() and lseek() calls all move a single
pointer into the file, and append mode, non-blocking I/O and asynchronous
I/O options are shared between the references. If a separate pointer
into the file is desired, a different object reference to the file must be
obtained by issuing an additional open(2) call. The close-on-exec flag
on the new file descriptor is unset.
oldfd - The file descriptor to be duplicated
newfd - The value of the new descriptor we want the old one to be duplicated in
-1 for error or newfd on success
This function must not be used in a shared library or
in a threaded application.
int execl(
const char *path,
const char *arg, ...)
Executes a file located in given path with specified arguments.
path - Pathname of the file to execute.
arg - First argument passed to the executed file.
... - Other arguments passed to the executed file.
Returns -1 and sets errno appropriately in case of error, otherwise
doesn't return.
int execlp(
const char *file,
const char *arg, ...)
Executes a file with given name. The search paths for the executed
file are paths specified in the PATH environment variable.
file - Name of the file to execute.
arg - First argument passed to the executed file.
... - Other arguments passed to the executed file.
Returns -1 and sets errno appropriately in case of error, otherwise
doesn't return.
int execv(
const char *path,
char *const argv[])
Executes a file located in given path with specified arguments.
path - Pathname of the file to execute.
argv - Array of arguments given to main() function of the executed
file.
Returns -1 and sets errno appropriately in case of error, otherwise
doesn't return.
int execve(
const char *filename,
char *const argv[],
char *const envp[])
Executes a file with given name.
filename - Name of the file to execute.
argv - Array of arguments provided to main() function of the executed
file.
envp - Array of environment variables passed as environment to the
executed program.
Returns -1 and sets errno appropriately in case of error, otherwise
doesn't return.
int execvp(
const char *file,
char *const argv[])
Executes a file with given name. The search paths for the executed
file are paths specified in the PATH environment variable.
file - Name of the file to execute.
argv - Array of arguments given to main() function of the executed
file.
Returns -1 and sets errno appropriately in case of error, otherwise
doesn't return.
Terminates the running program. The code is returned to the
program which has called the running program.
code - Exit code. 0 for success, other values for failure.
None. This function does not return.
This function must not be used in a shared library or
in a threaded application.
- EXAMPLE
- if (no_problems)
- exit (0);
- if (warning)
- exit (5);
- if (error)
- exit (10);
- if (fatal)
- exit (20);
Change the current working directory to the directory given as an open
file descriptor.
fd - File descriptor of the directory to change to.
If the current directory was changed successfully, zero is returned.
Otherwise, -1 is returned and errno set apropriately.
At program exit, the current working directory will be changed back
to the one that was current when the program first started. If you
do not desire this behaviour, use dos.library/CurrentDir() instead.
int fchmod(
int filedes,
mode_t mode)
Change permission bits of a file specified by an open file descriptor.
filedes - File descriptor of the file
mode - Permission bits to set
0 on success and -1 on error. If an error occurred, the global
variable errno is set.
See chmod() documentation for more details about the mode parameter.
int fchown(
int fd,
uid_t owner,
gid_t group)
int fclose(
FILE * stream)
stream - Stream to close.
Upon successful completion 0 is returned. Otherwise, EOF is
returned and the global variable errno is set to indicate the
error. In either case no further access to the stream is possible.
This function must not be used in a shared library or
in a threaded application.
int fcntl(
int fd,
int cmd,
...)
Perform operation specified in cmd on the file descriptor fd.
Some operations require additional arguments, in this case they
follow the cmd argument. The following operations are available:
F_DUPFD (int) - Duplicate file descriptor fd as the lowest numbered
file descriptor greater or equal to the operation
argument.
F_GETFD (void) - Read the file descriptor flags
F_SETFD (int) - Set the file descriptor flags to value given in
the operation argument
F_GETFL (void) - Read the file status flags
F_SETFL (int) - Set the file status flags to value given in the
operation argument.
File descriptor flags are zero or more ORed constants:
FD_CLOEXEC - File descriptor will be closed during execve()
File descriptor flags are not copied during duplication of file
descriptors.
File status flags are the flags given as mode parameter to open()
function call. You can change only a few file status flags in opened
file descriptor: O_NONBLOCK, O_APPEND and O_ASYNC. Any other file
status flags passed in F_SETFL argument will be ignored.
All duplicated file descriptors share the same set of file status
flags.
fd - File descriptor to perform operation on.
cmd - Operation specifier.
... - Operation arguments.
The return value of the function depends on the performed operation:
F_DUPFD - New duplicated file descriptor
F_GETFD - File descriptor flags
F_SETFD - 0
F_GETFL - File status flags
F_SETFL - 0 on success, -1 on error. In case of error a global errno
variable is set.
FILE *fdopen(
int filedes,
const char *mode
)
function associates a stream with an existing file descriptor.
filedes - The descriptor the stream has to be associated with
mode - The mode of the stream (same as with fopen()) must be com
patible with the mode of the file descriptor. The file
position indicator of the new stream is set to that
belonging to filedes, and the error and end-of-file indica
tors are cleared. Modes "w" or "w+" do not cause trunca
tion of the file. The file descriptor is not dup'ed, and
will be closed when the stream created by fdopen is
closed.
NULL on error or the new stream associated with the descriptor.
The new descriptor returned by the call is the lowest numbered
descriptor currently not in use by the process.
This function must not be used in a shared library or
in a threaded application.
Test the EOF-Flag of a stream. This flag is set automatically by
any function which recognises EOF. To clear it, call clearerr().
stream - The stream to be tested.
!= 0, if the stream is at the end of the file, 0 otherwise.
This function must not be used in a shared library or
in a threaded application.
int ferror(
FILE * stream)
Test the error flag of a stream. This flag is set automatically by
any function that detects an error. To clear it, call clearerr().
stream - The stream to be tested.
!= 0, if the stream had an error, 0 otherwise.
int fflush(
FILE * stream)
Flush a stream. If the stream is an input stream, then the stream
is synchronised for unbuffered I/O. If the stream is an output
stream, then any buffered data is written.
stream - Flush this stream. May be NULL. In this case, all
output streams are flushed.
0 on success or EOF on error.
int fgetc(
FILE * stream)
Read one character from the stream. If there is no character
available or an error occurred, the function returns EOF.
stream - Read from this stream
The character read or EOF on end of file or error.
int fgetpos(
FILE * stream,
fpos_t * pos)
Get the current position in a stream. This function is eqivalent
to ftell(). However, on some systems fpos_t may be a complex
structure, so this routine may be the only way to portably
get the position of a stream.
stream - The stream to get the position from.
pos - Pointer to the fpos_t position structure to fill.
0 on success and -1 on error. If an error occurred, the global
variable errno is set.
char * fgets(
char * buffer,
int size,
FILE * stream)
Read one line of characters from the stream into the buffer.
Reading will stop, when a newline ('\n') is encountered, EOF
or when the buffer is full. If a newline is read, then it is
put into the buffer. The last character in the buffer is always
'\0' (Therefore at most size-1 characters can be read in one go).
buffer - Write characters into this buffer
size - This is the size of the buffer in characters.
stream - Read from this stream
buffer or NULL in case of an error or EOF.
// Read a file line by line
char line[256];
// Read until EOF
while (fgets (line, sizeof (line), fh))
{
// Evaluate the line
}
int fileno(
FILE *stream)
Returns the descriptor associated with the stream
strem - the stream to get the descriptor from
int flock(
int fd,
int operation)
Apply or remove an advisory lock on open file descriptor fd. Operation
argument can be one of the following constants:
LOCK_SH - Place a shared lock on the file specified by fd. More that
one process can hold a shared lock on a given file at a
time.
LOCK_EX - Place an exclusive lock on the file specified by fd. Only
one process can hold an exclusive lock on a given file at
a time.
LOCK_UN - Remove an existing lock from the file specified by fd.
LOCK_EX operation blocks if there is a lock already placed on the
file. LOCK_SH blocks if there is an exclusive lock already placed
on the file. If you want to do a non-blocking request, OR the
operation specifier with LOCK_NB constant. In this case flock() will
return -1 instead of blocking and set errno to EWOULDBLOCK.
Advisory locks created with flock() are shared among duplicated file
descriptors.
fd - File descriptor of the file you want to place or remove lock from.
operation - Lock operation to be performed.
0 on success, -1 on error. In case of error a global errno variable
is set.
Locks placed with flock() are only advisory, they place no
restrictions to any file or file descriptor operations.
It's currently possible to remove lock placed by another process.
FILE * fopen(
const char * pathname,
const char * mode)
Opens a file with the specified name in the specified mode.
pathname - Path and filename of the file you want to open.
mode - How to open the file:
r: Open for reading. The stream is positioned at the
beginning of the file.
r+: Open for reading and writing. The stream is positioned
at the beginning of the file.
w: Open for writing. If the file doesn't exist, then
it is created. If it does already exist, then
it is truncated. The stream is positioned at the
beginning of the file.
w+: Open for reading and writing. If the file doesn't
exist, then it is created. If it does already
exist, then it is truncated. The stream is
positioned at the beginning of the file.
a: Open for writing. If the file doesn't exist, then
it is created. The stream is positioned at the
end of the file.
a+: Open for reading and writing. If the file doesn't
exist, then it is created. The stream is positioned
at the end of the file.
b: Open in binary more. This has no effect and is ignored.
A pointer to a FILE handle or NULL in case of an error. When NULL
is returned, then errno is set to indicate the error.
This function must not be used in a shared library or
in a threaded application.
Most modes are not supported right now.
int fprintf(
FILE * fh,
const char * format,
...)
Format a string with the specified arguments and write it to
the stream.
fh - Write to this stream
format - How to format the arguments
... - The additional arguments
The number of characters written to the stream or EOF on error.
int fputc(
int c,
FILE * stream)
Write one character to the specified stream.
c - The character to output
stream - The character is written to this stream
The character written or EOF on error.
int fputs(
const char * str,
FILE * stream)
Write a string to the specified stream.
str - Output this string...
fh - ...to this stream
> 0 on success and EOF on error.
size_t fread(
void * buf,
size_t size,
size_t nblocks,
FILE * stream)
Read an amount of bytes from a stream.
buf - The buffer to read the bytes into
size - Size of one block to read
nblocks - The number of blocks to read
stream - Read from this stream
The number of blocks read. This may range from 0 when the stream
contains no more blocks up to nblocks. In case of an error, 0 is
returned.
void free(
void * memory)
Return memory allocated with malloc() or a similar function to the
system.
memory - The result of the previous call to malloc(), etc. or
NULL.
This function must not be used in a shared library or in a threaded
application.
FILE *freopen(
const char *path,
const char *mode,
FILE *stream
)
Opens the file whose name is the string pointed to by path and
associates the stream pointed to by stream with it.
path - the file to open
mode - The mode of the stream (same as with fopen()) must be com
patible with the mode of the file descriptor. The file
position indicator of the new stream is set to that
belonging to fildes, and the error and end-of-file indica
tors are cleared. Modes "w" or "w+" do not cause trunca
tion of the file. The file descriptor is not dup'ed, and
will be closed when the stream created by fdopen is
closed.
stream - the stream to wich the file will be associated.
int fscanf(
FILE * fh,
const char * format,
...)
Scan a string with the specified arguments and write the results
in the specified parameters.
fh - Read from this stream
format - How to convert the input into the arguments
... - Write the result in these arguments
The number of converted arguments.
int fseek(
FILE * stream,
long offset,
int whence)
Change the current position in a stream.
stream - Modify this stream
offset, whence - How to modify the current position. whence
can be SEEK_SET, then offset is the absolute position
in the file (0 is the first byte), SEEK_CUR then the
position will change by offset (ie. -5 means to move
5 bytes to the beginning of the file) or SEEK_END.
SEEK_END means that the offset is relative to the
end of the file (-1 is the last byte and 0 is
the EOF).
0 on success and -1 on error. If an error occurred, the global
variable errno is set.
Not fully compatible with iso fseek, especially in 'ab' and 'a+b'
modes
int fsetpos(
FILE * stream,
const fpos_t * pos)
Change the current position in a stream. This function is eqivalent
to fseek() with whence set to SEEK_SET. However, on some systems
fpos_t may be a complex structure, so this routine may be the only
way to portably reposition a stream.
stream - Modify this stream
pos - The new position in the stream.
0 on success and -1 on error. If an error occurred, the global
variable errno is set.
int fstat(
int fd,
struct stat *sb)
Returns information about a file specified by an open file descriptor.
Information is stored in stat structure. Consult stat() documentation
for detailed description of that structure.
filedes - File descriptor of the file
sb - Pointer to stat structure that will be filled by the fstat()
call.
0 on success and -1 on error. If an error occurred, the global
variable errno is set.
long ftell(
FILE * stream)
Tell the current position in a stream.
stream - Obtain position of this stream
The position on success and -1 on error.
If an error occurred, the global variable errno is set.
int ftime(
struct timeb *tb)
int ftruncate(
int fd,
off_t length)
Truncate a file to a specified length
fd - the descriptor of the file being truncated.
The file must be open for writing
lenght - The file will have at most this size
0 on success or -1 on errorr.
If the file previously was larger than this size, the extra data
is lost. If the file previously was shorter, it is
unspecified whether the file is left unchanged or is
extended. In the latter case the extended part reads as
zero bytes.
size_t fwrite(
const void * restrict buf,
size_t size,
size_t nblocks,
FILE * restrict stream)
Write an amount of bytes to a stream.
buf - The buffer to write to the stream
size - Size of one block to write
nblocks - The number of blocks to write
stream - Write to this stream
The number of blocks written. If no error occurred, this is
nblocks. Otherwise examine errno for the reason of the error.
char * gcvt(
double number,
int ndigit,
char * buf
)
Converts a number to a minimal length NULL terminated ASCII string.
It produces ndigit significant digits in either printf F format or
E format.
number - The number to convert.
ndigits - The number of significan digits that the string has to have.
buf - The buffer that will contain the result string.
The address of the string pointed to by buf.
Read one character from the stream. If there is no character
available or an error occurred, the function returns EOF.
stream - Read from this stream
The character read or EOF on end of file or error.
Read one character from the standard input stream. If there
is no character available or an error occurred, the function
returns EOF.
The character read or EOF on end of file or error.
char *getcwd(
char *buf,
size_t size)
Get the current working directory.
buf - Pointer of the buffer where the path is to be stored
size - The size of the above buffer
Copies the absolute pathname of the current working directory
to the buffer. If the pathname is longer than the buffer
(with lenght "size") NULL is returned and errno set to ERANGE.
Otherwise the pointer to the buffer is returned.
If buf is NULL this function will allocate the buffer itself
using malloc() and the specified size "size". If size is
0, too, the buffer is allocated to hold the whole path.
It is possible and recommended to free() this buffer yourself!
The path returned does not have to be literally the same as the
one given to chdir. See NOTES from chdir for more explanation.
char *getenv(
const char *name)
Get an environment variable.
name - Name of the environment variable.
Pointer to the variable's value, or NULL on failure.
This function must not be used in a shared library.
int getfsstat(
struct statfs *buf,
long bufsize,
int flags)
Gets information about mounted filesystems.
buf - pointer to statfs structures where information about filesystems
will be stored or NULL
bufsize - size of buf in bytes
flags - not used
If buf is NULL number of mounted filesystems is returned. If buf is
not null, information about mounted filesystems is stored in statfs
structures up to bufsize bytes
f_flags, f_files, f_ffree and f_fsid.val are always set to 0
f_mntfromname is set to an empty string
struct group *getgrent(
void)
struct group *getgrgid(
gid_t gid)
struct group *getgrnam(
const char *name)
int getgroups(
int gidsetlen,
gid_t *gidset)
int getloadavg(
double loadavg[],
int n)
int getopt(
int nargc,
char * const nargv[],
const char *ostr)
Returns the process ID of the calling process
The process ID of the calling process.
struct passwd *getpwent(
void)
struct passwd *getpwnam(
const char *name)
struct passwd *getpwuid(
uid_t uid)
char * gets(
char * buffer)
Read one line of characters from the standard input stream into
the buffer. Reading will stop, when a newline ('\n') is encountered,
EOF or when the buffer is full. If a newline is read, then it is
replaced by '\0'. The last character in the buffer is always '\0'.
buffer - Write characters into this buffer
buffer or NULL in case of an error or EOF.
Never use this function. gets() does not know how large the buffer
is and will continue to store characters past the end of the buffer
if it has not encountered a newline or EOF yet. Use fgets() instead.
int gettimeofday(
struct timeval * tv,
struct timezone * tz)
Return the current time and/or timezone.
tv - If this pointer is non-NULL, the current time will be
stored here. The structure looks like this:
struct timeval
{
long tv_sec; // seconds
long tv_usec; // microseconds
};
tz - If this pointer is non-NULL, the current timezone will be
stored here. The structure looks like this:
struct timezone
{
int tz_minuteswest; // minutes west of Greenwich
int tz_dsttime; // type of dst correction
};
With daylight savings times defined as follows :
DST_NONE // not on dst
DST_USA // USA style dst
DST_AUST // Australian style dst
DST_WET // Western European dst
DST_MET // Middle European dst
DST_EET // Eastern European dst
DST_CAN // Canada
DST_GB // Great Britain and Eire
DST_RUM // Rumania
DST_TUR // Turkey
DST_AUSTALT // Australian style with shift in 1986
And the following macros are defined to operate on this :
timerisset(tv) - TRUE if tv contains a time
timercmp(tv1, tv2, cmp) - Return the result of the
comparison "tv1 cmp tv2"
timerclear(tv) - Clear the timeval struct
struct timeval tv;
// Get the current time and print it
gettimeofday (&tv, NULL);
printf ("Seconds = %ld, uSec = %ld\n", tv->tv_sec, tv->tv_usec);
This function must not be used in a shared library or
in a threaded application.
struct tm * gmtime(
const time_t * tt)
The gmtime() function converts the calendar time tt to
broken-down time representation, expressed in Coordinated Universal
Time (UTC).
See gmtime_r() for details.
A statically allocated buffer with the broken down time in Coordinated
Universal Time (UTC). Note that the contents of the buffer might get
lost with the call of any of the date and time functions.
time_t tt;
struct tm * tm;
// Get the time
time (&tt);
// and convert it
tm = gmtime (&tt);
This function must not be used in a shared library or
in a threaded application. Use gmtime_r() instead.
struct tm * gmtime_r(
const time_t * tt,
struct tm * tm)
The gmtime_r() function converts the calendar time tt to
broken-down time representation, expressed in Coordinated Universal
Time (UTC).
tt - The time to convert
tm - A struct tm to store the result in
The pointer passed in tm, containing the broken down time in
Coordinated Universal Time (UTC).
time_t tt;
struct tm tm;
// Get the time
time (&tt);
// and convert it
gmtime (&tt, &tm);
int ioctl(
int fd,
int request,
...)
Test if a character is an alphabetic character or a digit. Works
for all characters between -128 and 255 inclusive both.
c - The character to test.
!= 0 if the character is alphabetic character or a digit, 0 otherwise.
isalnum ('A') -> true
isalnum ('a') -> true
isalnum ('0') -> true
isalnum ('.') -> false
isalnum ('\n') -> false
isalnum ('\001') -> false
isalnum (EOF) -> false
Test if a character is an alphabetic character. Works for all
characters between -128 and 255 inclusive both.
c - The character to test.
!= 0 if the character is an alphabetic character, 0 otherwise.
isalpha ('A') -> true
isalpha ('a') -> true
isalpha ('0') -> false
isalpha ('.') -> false
isalpha ('\n') -> false
isalpha ('\001') -> false
isalpha (EOF) -> false
Test if a character is an ascii character. Works for all characters
between -128 and 255 inclusive both.
c - The character to test.
!= 0 if the character is an ascii character, 0 otherwise.
isascii ('A') -> true
isascii ('a') -> true
isascii ('0') -> true
isascii ('.') -> true
isascii ('\n') -> true
isascii ('\001') -> true
isascii (EOF) -> false
Test if a character is a space or a tab. Works for all characters
between -128 and 255 inclusive both.
c - The character to test.
!= 0 if the character is a space or tab, 0 otherwise.
isblank ('A') -> false
isblank ('a') -> false
isblank ('0') -> false
isblank ('.') -> false
isblank (' ') -> true
isblank ('\n') -> false
isblank ('\001') -> false
isblank (EOF) -> false
Test if a character is a control character. Works for all
characters between -128 and 255 inclusive both.
c - The character to test.
!= 0 if the character is a control character, 0 otherwise.
iscntrl ('A') -> false
iscntrl ('a') -> false
iscntrl ('0') -> false
iscntrl ('.') -> false
iscntrl ('\n') -> true
iscntrl ('\001') -> true
iscntrl (EOF) -> false
Test if a character is a digit. Works for all characters between
-128 and 255 inclusive both.
c - The character to test.
!= 0 if the character is a digit, 0 otherwise.
isdigit ('A') -> false
isdigit ('a') -> false
isdigit ('0') -> true
isdigit ('.') -> false
isdigit ('\n') -> false
isdigit ('\001') -> false
isdigit (EOF) -> false
Test if a character is a printable character but no whitespace.
Works for all characters between -128 and 255 inclusive both.
c - The character to test.
!= 0 if the character is a printable character but no whitespace, 0
otherwise.
isgraph ('A') -> true
isgraph ('a') -> true
isgraph ('0') -> true
isgraph ('.') -> true
isgraph ('\n') -> false
isgraph ('\001') -> false
isgraph (EOF) -> false
Test if a character is lowercase. Works for all characters between
-128 and 255 inclusive both.
c - The character to test.
!= 0 if the character is lowercase, 0 otherwise.
islower ('A') -> false
islower ('a') -> true
islower ('0') -> false
islower ('.') -> false
islower ('\n') -> false
islower ('\001') -> false
islower (EOF) -> false
Test if a character is a printable character. Works for all
characters between -128 and 255 inclusive both.
c - The character to test.
!= 0 if the character is a printable character, 0 otherwise.
isprint ('A') -> true
isprint ('a') -> true
isprint ('0') -> true
isprint ('.') -> true
isprint ('\n') -> true
isprint ('\001') -> false
isprint (EOF) -> false
Test if a character is printable but not alphanumeric. Works for
all characters between -128 and 255 inclusive both.
c - The character to test.
!= 0 if the character is printable but not alphanumeric, 0
otherwise.
ispunct ('A') -> false
ispunct ('a') -> false
ispunct ('0') -> false
ispunct ('.') -> true
ispunct ('\n') -> false
ispunct ('\001') -> false
ispunct (EOF) -> false
Test if a character is whitespace. Works for all characters between
-128 and 255 inclusive both.
c - The character to test.
!= 0 if the character is whitespace, 0 otherwise.
isspace ('A') -> false
isspace ('a') -> false
isspace ('0') -> false
isspace ('.') -> false
isspace ('\n') -> true
isspace ('\001') -> false
isspace (EOF) -> false
Test if a character is uppercase. Works for all characters between
-128 and 255 inclusive both.
c - The character to test.
!= 0 if the character is uppercase, 0 otherwise.
isupper ('A') -> true
isupper ('a') -> false
isupper ('0') -> false
isupper ('.') -> false
isupper ('\n') -> false
isupper ('\001') -> false
isupper (EOF) -> false
Test if a character is a hexadecimal digit. Works for all
characters between -128 and 255 inclusive both.
c - The character to test.
!= 0 if the character is a hexadecimal digit, 0 otherwise.
isxdigit ('A') -> true
isxdigit ('a') -> true
isxdigit ('x') -> false
isxdigit ('0') -> true
isxdigit ('.') -> false
isxdigit ('\n') -> false
isxdigit ('\001') -> false
isxdigit (EOF) -> false
long jrand48(
unsigned short xseed[3])
int kill(
pid_t pid,
int sig)
Compute the absolute value of j.
// returns 1
labs (1L);
// returns 1
labs (-1L);
void lcong48(
unsigned short p[7])
ldiv_t ldiv(
long int numer,
long int denom)
Compute quotient en remainder of two long variables
numer = the numerator
denom = the denominator
a struct with two long ints quot and rem with
quot = numer / denom and rem = numer % denom.
typedef struct ldiv_t {
long int quot;
long int rem;
} ldiv_t;
int link(
const char *oldpath,
const char *newpath)
lldiv_t lldiv(
long long int numer,
long long int denom)
Compute quotient en remainder of two long long variables
numer = the numerator
denom = the denominator
a struct with two long ints quot and rem with
quot = numer / denom and rem = numer % denom.
typedef struct lldiv_t {
long long int quot;
long long int rem;
} lldiv_t;
struct tm * localtime(
const time_t * tt)
Splits the system time in seconds into a structure.
See localtime_r() for details.
tt - A time in seconds from the 1. Jan 1970
A statically allocated buffer with the broken up time. Note that
the contents of the buffer might get lost with the call of any of
the date and time functions.
time_t tt;
struct tm * tm;
// Get time
time (&tt);
// Break time up
tm = localtime (&tt);
This function must not be used in a shared library or
in a threaded application. Use localtime_r() instead.
struct tm * localtime_r(
const time_t * tt,
struct tm * tm)
Splits the system time in seconds into a structure.
The members of the tm structure are:
\begin{description}
\item {tm_sec} The number of seconds after the minute, normally in
the range 0 to 59, but can be up to 61 to allow for leap
seconds.
\item{tm_min} The number of minutes after the hour, in the range 0
to 59.
\item{tm_hour} The number of hours past midnight, in the range 0 to
23.
\item{tm_mday} The day of the month, in the range 1 to 31.
\item{tm_mon} The number of months since January, in the range 0 to
11.
\item{tm_year} The number of years since 1900.
\item{tm_wday} The number of days since Sunday, in the range 0 to
6.
\item{tm_yday} The number of days since January 1, in the range 0
to 365.
\item{tm_isdst} A flag that indicates whether daylight saving time
is in effect at the time described. The value is positive
if daylight saving time is in effect, zero if it is not,
and negative if the information is not available.
\end{description}
tt - A time in seconds from the 1. Jan 1970
tm - A struct tm to store the result in
The pointer passed in tm.
time_t tt;
struct tm tm;
// Get time
time (&tt);
// Break time up
localtime_r (&tt, &tm);
off_t lseek(
int filedes,
off_t offset,
int whence)
Reposition read/write file offset
filedef - the filedescriptor being modified
offset, whence -
How to modify the current position. whence
can be SEEK_SET, then offset is the absolute position
in the file (0 is the first byte), SEEK_CUR then the
position will change by offset (ie. -5 means to move
5 bytes to the beginning of the file) or SEEK_END.
SEEK_END means that the offset is relative to the
end of the file (-1 is the last byte and 0 is
the EOF).
The new position on success and -1 on error. If an error occurred, the global
variable errno is set.
File is extended with zeros if desired position is beyond the end of
file.
Since it's not possible to use Seek() for directories, this
implementation fails with EISDIR for directory file descriptors.
int lstat(
const char *path,
struct stat *sb)
Returns information about a file like stat does except that lstat
does not follow symbolic links. Information is stored in stat
structure. Consult stat() documentation for detailed description
of that structure.
path - Pathname of the file
sb - Pointer to stat structure that will be filled by the lstat() call.
0 on success and -1 on error. If an error occurred, the global
variable errno is set.
void *malloc(
size_t size)
Allocate size bytes of memory and return the address of the
first byte.
size - How much memory to allocate.
A pointer to the allocated memory or NULL. If you don't need the
memory anymore, you can pass this pointer to free(). If you don't,
the memory will be freed for you when the application exits.
This function must not be used in a shared library or in a threaded
application.
size_t mblen(
const char *s,
size_t n)
size_t mbstowcs(
wchar_t *pwcs,
const char *s,
size_t n)
int mbtowc(
wchar_t *pwc,
const char *s,
size_t n)
void * memchr(
const void * mem,
int c,
size_t n)
Locate the first occurence of c which is converted to an unsigned
char in the first n bytes of the memory pointed to by mem.
mem - pointer to memory that is searched for c
c - the character to search for
n - how many bytes to search through starting at mem
pointer to the located byte or null if c was not found
int memcmp(
const void * s1,
const void * s2,
size_t n)
Calculate s1 - s2 for the n bytes after s1 and s2 and stop when
the difference is not 0.
s1, s2 - Begin of the memory areas to compare
n - The number of bytes to compare
The difference of the memory areas. The difference is 0, if both
are equal, < 0 if s1 < s2 and > 0 if s1 > s2. Note that it may be
greater then 1 or less than -1.
This function is not part of a library and may thus be called
any time.
void * memset(
void * dest,
int c,
size_t count)
Fill the memory at dest with count times c.
dest - The first byte of the destination area in memory
c - The byte to fill memory with
count - How many bytes to write
int mkdir(
const char *path,
mode_t mode)
path - the path of the directory being created
mode - the permission flags for the directory
0 on success or -1 on errorr.
int mknod(
const char *pathname,
mode_t mode,
dev_t dev)
int mkstemp(
char *template)
A template that must end with 'XXXXXX'
A file descriptor of opened temporary file or -1 on error.
char *mktemp(
char *template)
Make a unique temporary file name.
template- Name of the environment variable.
Template must end in "XXXXXX" (i.e at least 6 X's).
Prior to this paragraph being created, mktemp() sometimes produced filenames
with '/' in them. AROS doesn't like that at all. Fortunately, the bug in this
function which produced it has been fixed. -- blippy
For clarity, define the HEAD of the template to be the part before the tail,
and the TAIL to be the succession of X's. So in, T:temp.XXXXXX , the head is
T:temp. and the tail is XXXXXX .
Cannot create more than 26 filenames for the same process id. This is because
the "bumping" is only done to the first tail character - it should be
generalised to bump more characters if necessary.
time_t mktime(
struct tm * utim)
The mktime() function converts the broken-down time utim to
calendar time representation.
utim - The broken-down time to convert
The converted calendar time
time_t tt;
struct tm * tm;
//Computation which results in a tm
tm = ...
// and convert it
tt = mktime (tm);
At the moment sanity check is not performed nor a normalization on the
structure is done
long nrand48(
unsigned short xseed[3])
int on_exit(
void (*func)(int, void *),
void *arg)
int open(
const char * pathname,
int flags,
...)
Opens a file with the specified flags and name.
pathname - Path and filename of the file you want to open.
flags - Most be exactly one of: O_RDONLY, O_WRONLY or O_RDWR
to open a file for reading, writing or for reading and
writing.
The mode can be modified by or'ing the following bits in:
O_CREAT: Create the file if it doesn't exist (only for
O_WRONLY or O_RDWR). If this flag is set, then
open() will look for a third parameter mode. mode
must contain the access modes for the file
(mostly 0644).
O_EXCL: Only with O_CREAT. If the file does already exist,
then open() fails. See BUGS.
O_NOCTTY:
O_TRUNC: If the file exists, then it gets overwritten. This
is the default and the opposite to O_APPEND.
O_APPEND: If the file exists, then the startung position for
writes is the end of the file.
O_NONBLOCK or O_NDELAY: Opens the file in non-blocking mode.
If there is no data in the file, then read() on a
terminal will return immediately instead of waiting
until data arrives. Has no effect on write().
O_SYNC: The process will be stopped for each write() and the
data will be flushed before the write() returns.
This ensures that the data is physically written
when write() returns. If this flag is not specified,
the data is written into a buffer and flushed only
once in a while.
-1 for error or a file descriptor for use with read(), write(), etc.
If the filesystem doesn't allow to specify different access modes
for users, groups and others, then the user modes are used.
This function must not be used in a shared library or
in a threaded application.
The flag O_EXCL is not very reliable if the file resides on a NFS
filesystem.
Most flags are not supported right now.
DIR *opendir(
const char *name)
pathname - Path and filename of the directory you want to open.
NULL for error or a directory stream
int pclose(
FILE * stream)
void perror(
const char *string
)
looks up the language-dependent error message string affiliated with an error
number and writes it, followed by a newline, to the standard error stream.
string - the string to prepend the error message. If NULL only the error
message will be printed, otherwise the error message will be
separated from string by a colon.
FILE * popen(
const char * command,
const char * mode)
"opens" a process by creating a pipe, spawning a new process and invoking
the shell.
command - Pointer to a null terminated string containing the command
to be executed by the shell.
mode - Since a pipe is unidirectional, mode can be only one of
r: Open for reading. After popen() returns, the stream can
be used to read from it, as if it were a normal file stream,
in order to get the command's output.
w: Open for writing. After popen() returns, the stream can
be used to write to it, as if it were a normal file stream,
in order to provide the command with some input.
A pointer to a FILE handle or NULL in case of an error. When NULL
is returned, then errno is set to indicate the error.
This function must not be used in a shared library or
in a threaded application.
int posix_memalign(
void **memptr,
size_t alignment,
size_t size)
memptr - Pointer to a place to store the pointer to allocated memory.
alignment - Alignment of allocated memory. The address of the
allocated memory will be a multiple of this value, which
must be a power of two and a multiple of sizeof(void *).
size - How much memory to allocate.
Returns zero on success.
Returns EINVAL if the alignment parameter was not a power of two, or
was not a multiple of sizeof(void *).
Returns ENOMEM if there was insufficient memory to fulfill the request.
Memory allocated by posix_memalign() should be freed with free(). If
not, it will be freed when the program terminates.
This function must not be used in a shared library or in a threaded
application.
If an error occurs, errno will not be set.
int printf(
const char * format,
...)
Formats a list of arguments and prints them to standard out.
The format string is composed of zero or more directives: ordinary
characters (not %), which are copied unchanged to the output
stream; and conversion specifications, each of which results in
fetching zero or more subsequent arguments Each conversion
specification is introduced by the character %. The arguments must
correspond properly (after type promotion) with the conversion
specifier. After the %, the following appear in sequence:
\begin{itemize}
\item Zero or more of the following flags:
\begin{description}
\item{#} specifying that the value should be converted to an
``alternate form''. For c, d, i, n, p, s, and u conversions, this
option has no effect. For o conversions, the precision of the
number is increased to force the first character of the output
string to a zero (except if a zero value is printed with an
explicit precision of zero). For x and X conversions, a non-zero
result has the string `0x' (or `0X' for X conversions) prepended to
it. For e, E, f, g, and G conversions, the result will always
contain a decimal point, even if no digits follow it (normally, a
decimal point appears in the results of those conversions only if a
digit follows). For g and G conversions, trailing zeros are not
removed from the result as they would otherwise be.
\item{0} specifying zero padding. For all conversions except n, the
converted value is padded on the left with zeros rather than
blanks. If a precision is given with a numeric conversion (d, i, o,
u, i, x, and X), the 0 flag is ignored.
\item{-} (a negative field width flag) indicates the converted
value is to be left adjusted on the field boundary. Except for n
conversions, the converted value is padded on the right with
blanks, rather than on the left with blanks or zeros. A -
overrides a 0 if both are given.
\item{ } (a space) specifying that a blank should be left before a
positive number produced by a signed conversion (d, e, E, f, g, G,
or i). + specifying that a sign always be placed before a number
produced by a signed conversion. A + overrides a space if both are
used.
\item{'} specifying that in a numerical argument the output is to
be grouped if the locale information indicates any. Note that many
versions of gcc cannot parse this option and will issue a warning.
\end{description}
\item An optional decimal digit string specifying a minimum field
width. If the converted value has fewer characters than the field
width, it will be padded with spaces on the left (or right, if the
left-adjustment flag has been given) to fill out the field width.
\item An optional precision, in the form of a period (`.') followed
by an optional digit string. If the digit string is omitted, the
precision is taken as zero. This gives the minimum number of digits
to appear for d, i, o, u, x, and X conversions, the number of
digits to appear after the decimal-point for e, E, and f
conversions, the maximum number of significant digits for g and G
conversions, or the maximum number of characters to be printed from
a string for s conversions.
\item The optional character h, specifying that a following d, i,
o, u, x, or X conversion corresponds to a short int or unsigned
short int argument, or that a following n conversion corresponds to
a pointer to a short int argument.
\item The optional character l (ell) specifying that a following d,
i, o, u, x, or X conversion applies to a pointer to a long int or
unsigned long int argument, or that a following n conversion
corresponds to a pointer to a long int argument. Linux provides a
non ANSI compliant use of two l flags as a synonym to q or L. Thus
ll can be used in combination with float conversions. This usage
is, however, strongly discouraged.
\item The character L specifying that a following e, E,
f, g, or G conversion corresponds to a long double
argument, or a following d, i, o, u, x, or X conversion corresponds to a long long argument. Note
that long long is not specified in ANSI C and
therefore not portable to all architectures.
\item The optional character q. This is equivalent to L. See the
STANDARDS and BUGS sections for comments on the use of ll, L, and
q.
\item A Z character specifying that the following integer (d, i, o,
u, i, x, and X), conversion corresponds to a size_t argument.
\item A character that specifies the type of conversion to be
applied.
A field width or precision, or both, may be indicated by an
asterisk `*' instead of a digit string. In this case, an int
argument supplies the field width or precision. A negative field
width is treated as a left adjustment flag followed by a positive
field width; a negative precision is treated as though it were
missing.
The conversion specifiers and their meanings are:
\begin{description}
\item{diouxX} The int (or appropriate variant) argument is
converted to signed decimal (d and i), unsigned octal (o, unsigned
decimal (u, or unsigned hexadecimal (x and X) notation. The letters
abcdef are used for x conversions; the letters ABCDEF are used for
X conversions. The precision, if any, gives the minimum number of
digits that must appear; if the converted value requires fewer
digits, it is padded on the left with zeros.
\item{eE} The double argument is rounded and converted in the style
[<->]d.dddedd where there is one digit before the decimal-point
character and the number of digits after it is equal to the
precision; if the precision is missing, it is taken as 6; if the
precision is zero, no decimal-point character appears. An E
conversion uses the letter E (rather than e) to introduce the
exponent. The exponent always contains at least two digits; if the
value is zero, the exponent is 00.
\item{f} The double argument is rounded and converted to decimal
notation in the style [-]ddd.ddd, where the number of digits after
the decimal-point character is equal to the precision
specification. If the precision is missing, it is taken as 6; if
the precision is explicitly zero, no decimal-point character
appears. If a decimal point appears, at least one digit appears
before it.
\item{g} The double argument is converted in style f or e (or E for
G conversions). The precision specifies the number of significant
digits. If the precision is missing, 6 digits are given; if the
precision is zero, it is treated as 1. Style e is used if the
exponent from its conversion is less than -4 or greater than or
equal to the precision. Trailing zeros are removed from the
fractional part of the result; a decimal point appears only if it
is followed by at least one digit.
\item{c} The int argument is converted to an unsigned char, and the
resulting character is written.
\item{s} The ``char *'' argument is expected to be a pointer to an
array of character type (pointer to a string). Characters from the
array are written up to (but not including) a terminating NUL
character; if a precision is specified, no more than the number
specified are written. If a precision is given, no null character
need be present; if the precision is not specified, or is greater
than the size of the array, the array must contain a terminating
NUL character.
\item{p} The ``void *'' pointer argument is printed in hexadecimal
(as if by %#x or %#lx).
\item{n} The number of characters written so far is stored into the
integer indicated by the ``int *'' (or variant) pointer argument.
No argument is converted.
\item{%} A `%' is written. No argument is converted. The complete
conversion specification is `%%'.
\end{description}
\end{itemize}
In no case does a non-existent or small field width cause
truncation of a field; if the result of a conversion is wider than
the field width, the field is expanded to contain the conversion
result.
format - Format string as described above
... - Arguments for the format string
The number of characters written to stdout or EOF on error.
To print a date and time in the form `Sunday, July 3,
10:02', where weekday and month are pointers to strings:
#include <stdio.h>
fprintf (stdout, "%s, %s %d, %.2d:%.2d\n",
weekday, month, day, hour, min);
To print to five decimal places:
#include <math.h>
#include <stdio.h>
fprintf (stdout, "pi = %.5f\n", 4 * atan(1.0));
To allocate a 128 byte string and print into it:
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
char *newfmt(const char *fmt, ...)
{
char *p;
va_list ap;
if ((p = malloc(128)) == NULL)
return (NULL);
va_start(ap, fmt);
(void) vsnprintf(p, 128, fmt, ap);
va_end(ap);
return (p);
}
All functions are fully ANSI C3.159-1989 conformant, but provide
the additional flags q, Z and ' as well as an additional behaviour
of the L and l flags. The latter may be considered to be a bug, as
it changes the behaviour of flags defined in ANSI C3.159-1989.
The effect of padding the %p format with zeros (either by the 0
flag or by specifying a precision), and the benign effect (i.e.,
none) of the # flag on %n and %p conversions, as well as
nonsensical combinations such as are not standard; such
combinations should be avoided.
Some combinations of flags defined by ANSI C are not making sense
in ANSI C (e.g. %Ld). While they may have a well-defined behaviour
on Linux, this need not to be so on other architectures. Therefore
it usually is better to use flags that are not defined by ANSI C at
all, i.e. use q instead of L in combination with diouxX conversions
or ll. The usage of q is not the same as on BSD 4.4, as it may be
used in float conversions equivalently to L.
Because sprintf and vsprintf assume an infinitely long string,
callers must be careful not to overflow the actual space; this is
often impossible to assure.
int putc(
int c,
FILE * stream)
Write one character to the specified stream.
c - The character to output
stream - The character is written to this stream
The character written or EOF on error.
int putenv(
const char *string)
Change or add an environment variable.
string - Is of the form "name=value", where name is the variable's
name and value is its value. In case the string is of the form
"name" then the variable is removed from the environment.
The putenv() function returns zero on success, or -1 if an
error occurs. In such a case the errno variable is set
appropriately.
This function must not be used in a shared library.
Conforming to BSD4.4 in that it makes a copy of the argument string.
int puts(
const char * str)
Print a string to stdout. A newline ('\n') is emmitted after the
string.
> 0 on success and EOF on error. On error, the reason is put in
errno.
#include <errno.h>
if (puts ("Hello World.") != EOF)
fprintf (stderr, "Success");
else
fprintf (stderr, "Failure: errno=%d", errno);
int putw(
int word,
FILE *stream)
void qsort(
void * a,
size_t n,
size_t es,
int (* cmp)(const void *, const void *))
Sort the array a. It contains n elements of the size es. Elements
are compares using the function cmp().
a - The array to sort
n - The number of elements in the array
es - The size of a single element in the array
cmp - The function which is called when two elements must be
compared. The function gets the addresses of two elements
of the array and must return 0 is both are equal, < 0 if
the first element is less than the second and > 0 otherwise.
// Use this function to compare to stringpointers
int cmp_strptr (const char ** sptr1, const char ** sptr2)
{
return strcmp (*sptr1, *sptr2);
}
// Sort an array of strings
char ** strings;
// fill the array
strings = malloc (sizeof (char *)*4);
strings[0] = strdup ("h");
strings[1] = strdup ("a");
strings[2] = strdup ("f");
strings[3] = strdup ("d");
// Sort it
qsort (strings, sizeof (char *), 4, (void *)cmp_strptr);
A random number generator.
A pseudo-random integer between 0 and RAND_MAX.
This function must not be used in a shared library or
in a threaded application.
ssize_t read(
int fd,
void * buf,
size_t count)
Read an amount of bytes from a file descriptor.
fd - The file descriptor to read from
buf - The buffer to read the bytes into
count - Read this many bytes.
The number of characters read (may range from 0 when the file
descriptor contains no more characters to count) or -1 on error.
struct dirent *readdir(
DIR *dir)
dir - the directory stream pointing to the directory being read
The readdir() function returns a pointer to a dirent
structure, or NULL if an error occurs or end-of-file is
reached.
The data returned by readdir() is overwritten by subse
quent calls to readdir() for the same directory stream.
According to POSIX, the dirent structure contains a field
char d_name[] of unspecified size, with at most NAME_MAX
characters preceding the terminating null character. Use
of other fields will harm the portability of your pro
grams.
void * realloc(
void * oldmem,
size_t size)
Change the size of an allocated part of memory. The memory must
have been allocated by malloc() or calloc(). If you reduce the
size, the old contents will be lost. If you enlarge the size,
the new contents will be undefined.
oldmen - What you got from malloc() or calloc().
size - The new size.
A pointer to the allocated memory or NULL. If you don't need the
memory anymore, you can pass this pointer to free(). If you don't,
the memory will be freed for you when the application exits.
If you get NULL, the memory at oldmem will not have been freed and
can still be used.
This function must not be used in a shared library or
in a threaded application.
void * realloc_nocopy(
void * oldmem,
size_t size)
Change the size of an allocated part of memory. The memory must
have been allocated by malloc(), calloc(), realloc() or realloc_nocopy().
The reallocated buffer, unlike with realloc(), is not guaranteed to hold
a copy of the old one.
oldmen - What you got from malloc(), calloc(), realloc() or realloc_nocopy().
If NULL, the function will behave exactly like malloc().
size - The new size. If 0, the buffer will be freed.
A pointer to the allocated memory or NULL. If you don't need the
memory anymore, you can pass this pointer to free(). If you don't,
the memory will be freed for you when the application exits.
If you get NULL, the memory at oldmem will not have been freed and
can still be used.
This function must not be used in a shared library or
in a threaded application.
This function is AROS specific.
int remove(
const char * pathname)
Deletes a file or directory.
pathname - Complete path to the file or directory.
0 on success and -1 on error. In case of an error, errno is set.
int rename(
const char * oldpath,
const char * newpath)
Renames a file or directory.
oldpath - Complete path to existing file or directory.
newpath - Complete path to the new file or directory.
0 on success and -1 on error. In case of an error, errno is set.
void rewind(
FILE * stream)
Change the current position in a stream to the beginning.
stream - Modify this stream
void rewinddir(
DIR *dir)
int rmdir(
const char * pathname)
Deletes an empty directory.
pathname - Complete path to the directory.
0 on success and -1 on error. In case of an error, errno is set.
int scanf(
const char * format,
...)
The number of converted parameters
unsigned short *seed48(
unsigned short xseed[3])
void seekdir(
DIR *dir,
off_t offset)
void setbuf(
FILE *stream,
char *buf)
This is a simpler alias for setvbuf() according to manpage.
int setenv(
const char *name,
const char *value,
int overwrite)
Change or add an environment variable.
name - Name of the environment variable,
value - Value wich the variable must be set or changed to.
overwrite - If non-zero then, if a variable with the name name already
exists, its value is changet to value, otherwise is not
changed
Returns zero on success, or -1 if there was insufficient
space in the environment.
This function must not be used in a shared library.
void setlinebuf(
FILE *stream)
This is a simpler alias for setvbuf() according to manpage.
int setvbuf(
FILE *stream,
char *buf,
int mode,
size_t size)
void sharecontextwithchild(
int share)
Controls sharing parent arosc context with child processes.
Must be called by parent process.
share - TRUE/FALSE - should parent share context with children
By calling this function the user of arosc.library controls how
new child processes use parent's arosc.library context.
When sharing is enabled, a child process will never create its
own arosc.library context and will alway use parent's context.
If you have a parent and child process allocating/dealocating
(malloc/free) memory for the same pointer, you must use this
function so that the memory will always be allocated in the
same arosc.libray context. Failure to do so will result with
GURU during free.
Things to be aware off:
- this function is dangeruos - you as a programmer must take care
of thread synchronization
- a child process cannot have life span longer than a parent process
- a child process may not call vfork or exec* functions - if such
feature is required, the vfork and exec* functions need to be
modified to work with flag set by this function
- once enabled, the sharing can be disabled at any time - when
the sharing is disabled, all child processes will acquire their
own arosc contexts when such need arises.
int sigaction(
int signum,
const struct sigaction *act,
struct sigaction *oldact)
int sigaddset(
sigset_t *set,
int signum)
int sigdelset(
sigset_t *set,
int signum)
int sigemptyset(
sigset_t *set)
int sigfillset(
sigset_t *set)
int sigismember(
const sigset_t *set,
int signum)
__sighandler_t *signal(
int sig,
__sighandler_t *handler)
int sigpending(
sigset_t *set)
int sigprocmask(
int how,
const sigset_t *set,
sigset_t *oldset)
int sigsuspend(
const sigset_t *mask)
unsigned int sleep(
unsigned int seconds )
The sleep() function makes the current process sleep for the
specified number of seconds or until a signal arrives which
is not ignored.
seconds - The number of seconds to sleep
Zero if the requested time has elapsed, or the number of seconds
left to sleep when the process was signalled.
// Sleep for 10 seconds
sleep( 10 );
The current implementation simply uses the dos.library function
Delay() to sleep, and cannot be interrupted by incoming signals.
This shouldn't be of any importance, since AROS doesn't have
POSIX style signalling yet (but when it is implemented, this
function needs to be changed).
int snprintf(
char * str,
size_t n,
const char * format,
...)
Formats a list of arguments and writes them into the string str.
str - The formatted string is written into this variable. You
must make sure that it is large enough to contain the
result.
n - At most n characters are written into the string. This
includes the final 0.
format - Format string as described above
... - Arguments for the format string
The number of characters written into the string. The 0 byte at the
end is not included. If this is greater than or equal to n then
there was not enough room to write all characters. In this case the
output string is not null-terminated, and the return value is the
number of characters which would have been written if enough space had
been available.
int spawnv(
int mode,
const char *path,
char *const argv[])
Spawn a child process, given a vector of arguments
mode - the way the child process has to be loaded, and how the parent has to behave
after the child process is initiated. Specify one of the following values:
P_WAIT - the child program is loaded into memory, then it's executed while
the parent process waits for it to terminate, at which point the
patent process resumes execution.
P_NOWAIT - the parent program is executed concurrently with the new child process.
P_OVERLAY - teplace the parent program with the child program in memory and then
execute the child. The parent program will never be resumed. This
mode is equivalent to calling one of the exec*() functions.
path - the full path name of the executable.
argv - a pointer to a NULL terminated array of strings representing arguments to pass
to the child process. The first entry in the array is conventionally the name of
the program to spawn, but in any case it must _never_ be NULL, and the argv
pointer itself must never be NULL either.
If P_WAIT is specified, then the return code of the child program is returned.
If instead P_NOWAIT is used, then the pid of the newly created process is returned.
Finally, if P_OVERLAY is used, the function doesn't return unless an error has occurred,
in which case -1 is returned also for the other modes and the global errno variable will
hold the proper error code.
The way the child process behaves regarding parent's file descriptors, signal handlers
and so on is the same way it would behave with one of the exec*(3) functions.
This, for one, means that all filedescriptors are inherited except the ones which have
the close-on-exec flag set.
int spawnvp(
int mode,
const char *command,
char *const argv[])
Spawn a child process, given a vector of arguments. It's like spawnv(), but
searches the command in the directories specified by the PATH environment
variable.
mode - the way the child process has to be loaded, and how the parent has to behave
after the child process is initiated. Specify one of the following values:
P_WAIT - the child program is loaded into memory, then it's executed while
the parent process waits for it to terminate, at which point the
patent process resumes execution.
P_NOWAIT - the parent program is executed concurrently with the new child process.
P_OVERLAY - teplace the parent program with the child program in memory and then
execute the child. The parent program will never be resumed. This
mode is equivalent to calling one of the exec*() functions.
command - the command to execute. Unless it's an absolute path name, the command
will be searched in the directories specified by the PATH environment
variable.
argv - a pointer to a NULL terminated array of strings representing arguments to pass
to the child process. The first entry in the array is conventionally the name of
the program to spawn, but in any case it must _never_ be NULL, and the argv
pointer itself must never be NULL either.
If P_WAIT is specified, then the return code of the child program is returned.
If instead P_NOWAIT is used, then the pid of the newly created process is returned.
Finally, if P_OVERLAY is used, the function doesn't return unless an error has occurred,
in which case -1 is returned also for the other modes and the global errno variable will
hold the proper error code.
The way the child process behaves regarding parent's file descriptors, signal handlers
and so on is the same way it would behave with one of the exec*(3) functions.
This, for one, means that all filedescriptors are inherited except the ones which have
the close-on-exec flag set.
int sprintf(
char * str,
const char * format,
...)
Formats a list of arguments and writes them into the string str.
str - The formatted string is written into this variable. You
must make sure that it is large enough to contain the
result.
format - Format string as described above
... - Arguments for the format string
The number of characters written into the string.
No checks are made that str is large enough for the result.
void srand(
unsigned int seed)
Set the starting value for the random number generator rand()
This function must not be used in a shared library or
in a threaded application.
int sscanf(
const char *str,
const char *format,
...)
Scan the specified string and convert it into the arguments as
specified by format.
str - The routine examines this string.
format - Format string. See scanf() for a description
... - Arguments for the result
The number of converted parameters.
int stat(
const char *path,
struct stat *sb)
Returns information about a file. Information is stored in stat
structure having the following fields:
dev_t st_dev; - ID of device containing the file
ino_t st_ino; - inode number
mode_t st_mode; - protection mode
nlink_t st_nlink; - number of hard links
uid_t st_uid; - user ID of the file's owner
gid_t st_gid; - group ID of the file's group
dev_t st_rdev; - device ID (if the file is character
or block special file)
off_t st_size; - file size, in bytes
time_t st_atime; - time of last acces
time_t st_mtime; - time of last data modification
time_t st_ctime; - time of last file status change
blksize_t st_blksize; - optimal blocksize for I/O
blkcnt_t st_blocks; - number of blocks allocated for file
path - Pathname of the file
sb - Pointer to stat structure that will be filled by the stat() call.
0 on success and -1 on error. If an error occurred, the global
variable errno is set.
int statfs(
const char *path,
struct statfs *buf)
Gets information about mounted filesystem.
path - path to any file in the filesystem we want to know about
buf - pointer to statfs structures where information about filesystem
will be stored
Information about filesystem is stored in statfs structure
f_flags, f_files, f_ffree and f_fsid.val are always set to 0
f_mntfromname is set to an empty string
size_t stccpy(
char * dest,
const char * src,
size_t n)
Copy a string. Works like an assignment "dest=src;". At most
n characters are copied.
dest - The string is copied into this variable. Make sure it is
large enough.
src - This is the new contents of dest.
n - How many characters to copy at most. If the string src is
smaller than that, only strlen(str)+1 bytes are copied.
The number of copied characters.
No check is beeing made that dest is large enough for src.
int stcd_l(
const char * in,
long * lvalue)
Convert decimal string to a long integer
in - The decimal string to be converted
lvalue - Pointer to long where the result is saved
1 means success. 0 means failure.
int stch_l(
const char * in,
long * lvalue)
Convert hexadecimal string to a long integer
in - The hexadecimal string to be converted
lvalue - Pointer to long where the result is saved
Number of characters converted
int stcl_d(
char * out,
long lvalue)
Convert an long integer to a decimal string
out - Result will be put into this string
uivalue - the value to convert
The number of characters written into the string
int stcl_h(
char * out,
long lvalue)
Convert an long integer to a hex string
out - Result will be put into this string
uivalue - the value to convert
The number of characters written into the string
int stcl_o(
char * out,
long lvalue)
Convert an long integer to an octal string
out - Result will be put into this string
uivalue - the value to convert
The number of characters written into the string
int stco_l(
const char * in,
long * lvalue)
Convert octal string to a long integer
in - The octal string to be converted
lvalue - Pointer to long where the result is saved
1 means success. 0 means failure.
int stcu_d(
char * out,
unsigned uivalue)
Convert an unsigned integer to a decimal string
out - Result will be put into this string
uivalue - the value to convert
The number of characters written into the string
char * stpblk(
const char * str )
Searches for the first non-blank character in a string. A blank
character is defined as one that isspace() treats like one
(ie. spaces, tabs and newlines).
A pointer to the first occurence of a non-blank character in str.
char *hello = " Hello";
char *empty = " ";
printf( stpblk( hello ) );
--> Hello
printf( stpblk( empty ) );
-->
printf( "%d", strlen( stpblk( hello ) ) );
--> 5
printf( "%d", strlen( stpblk( empty ) ) );
--> 0
This function always returns a valid pointer as provided str isn't
NULL. If there are no non-blank characters in the string, a pointer
to the trailing '\0' is returned (ie. an empty string).
char * stpcpy(
char * dest,
const char * src)
Copy a string returning pointer to its end.
dest - The string is copied into this variable. Make sure it is
large enough.
src - This is the new contents of dest.
pointer to the end of the string dest (address of it's null
character)
No check is beeing made that dest is large enough for src.
char * stpsym(
char * str_ptr,
char * dest_ptr,
int dest_size)
Searches for a symbol in a string.
str_ptr - points to the string to scan
dest_ptr - points to the string where stpsym stores the symbol
dest_size - specifies the size in bytes of *dest_ptr
Pointer to the next character in the string after the symbol.
If stpsym could not find a symbol, it returns str_ptr.
#include <string.h>
#include <stdio.h>
int main(void)
{
char *text;
char symbol[10];
char *r;
text = "alpha1 2";
r = stpsym(text,symbol,10);
printf("%s",symbol); // prints "alpha1"
}
A symbol consists of an alphabetic character followed by zero
or more alphanumeric characters. stpsym() does not skip leading
space characters.
Note that if you want to retrieve a symbol of length n, you need
to ensure that *dest_ptr can accommodate at least n+1 elements,
and that dest_size == n+1. This extra element is needed for the
terminating null character.
int strcasecmp(
const char * str1,
const char * str2)
Calculate str1 - str2 ignoring case.
str1, str2 - Strings to compare
The difference of the strings. The difference is 0, if both are
equal, < 0 if str1 < str2 and > 0 if str1 > str2. Note that
it may be greater then 1 or less than -1.
This function is not part of a library and may thus be called
any time.
char * strcasestr(
const char * str,
const char * search)
Searches for a string in a string.
str - Search this string
search - Look for this string
A pointer to the first occurence of search in str or NULL if search
is not found in str.
char buffer[64];
strcpy (buffer, "Hello ");
// This returns a pointer to the first l in buffer.
strcasestr (buffer, "llo ");
// This returns NULL
strcasestr (buffer, "llox");
char * strcat(
char * dest,
const char * src)
Concatenates two strings.
dest - src is appended to this string. Make sure that there
is enough room for src.
src - This string is appended to dest
char buffer[64];
strcpy (buffer, "Hello ");
strcat (buffer, "World.");
// Buffer now contains "Hello World."
The routine makes no checks if dest is large enough.
char * strchr(
const char * str,
int c)
Searches for a character in a string.
str - Search this string
c - Look for this character
A pointer to the first occurence of c in str or NULL if c is not
found in str.
char buffer[64];
strcpy (buffer, "Hello ");
// This returns a pointer to the first l in buffer.
strchr (buffer, 'l');
// This returns NULL
strchr (buffer, 'x');
int strcmp(
const char * str1,
const char * str2)
str1, str2 - Strings to compare
The difference of the strings. The difference is 0, if both are
equal, < 0 if str1 < str2 and > 0 if str1 > str2. Note that
it may be greater then 1 or less than -1.
This function is not part of a library and may thus be called
any time.
int strcoll(
const char * str1,
const char * str2)
Calculate str1 - str2. The operation is based on strings interpreted
as appropriate for the program's current locale for category LC_COLLATE.
str1, str2 - Strings to compare
The difference of the strings. The difference is 0, if both are
equal, < 0 if str1 < str2 and > 0 if str1 > str2. Note that
it may be greater then 1 or less than -1.
char * strcpy(
char * dest,
const char * src)
Copy a string. Works like an assignment "dest=src;".
dest - The string is copied into this variable. Make sure it is
large enough.
src - This is the new contents of dest.
No check is beeing made that dest is large enough for src.
size_t strcspn(
const char * str,
const char * reject)
Calculates the length of the initial segment of str which consists
entirely of characters not in reject.
str - The string to check.
reject - Characters which must not be in str.
Length of the initial segment of str which doesn't contain any
characters from reject.
char buffer[64];
strcpy (buffer, "Hello ");
// Returns 5
strcspn (buffer, " ");
// Returns 0
strcspn (buffer, "H");
char * strdup(
const char * orig)
Create a copy of a string. The copy can be freed with free() or will
be freed when then program ends.
str1 - Strings to duplicate
A copy of the string which can be freed with free().
Returns a readable string for an error number in errno.
n - The contents of errno or a #define from errno.h
A string describing the error.
size_t strftime(
char *s,
size_t maxsize,
const char *format,
const struct tm *timeptr)
size_t strlcat(
char *dst,
const char *src,
size_t siz)
size_t strlcpy(
char *dst,
const char *src,
size_t siz)
size_t strlen(
const char * ptr)
Calculate the length of a string (without the terminating 0 byte).
ptr - The string to get its length for
The length of the string.
char * strlwr(
char * str)
Converts a string to all lower case characters. Modifies
the given string.
str - The string to convert.
The same string buffer is passed back with all characters converted.
int strncasecmp(
const char * str1,
const char * str2,
size_t n)
Calculate str1 - str2 ignoring case. Upto n characters are taken
into account.
str1, str2 - Strings to compare
The difference of the strings. The difference is 0, if both are
equal, < 0 if str1 < str2 and > 0 if str1 > str2. Note that
it may be greater then 1 or less than -1.
This function is not part of a library and may thus be called
any time.
char * strncat(
char * dest,
const char * src,
size_t n)
Concatenates two strings. If src is longer than n characters, then
only the first n characters are copied.
dest - src is appended to this string. Make sure that there
is enough room for src.
src - This string is appended to dest
n - No more than this number of characters of src are copied.
char buffer[64];
strcpy (buffer, "Hello ");
strncat (buffer, "World.!!", 6);
// Buffer now contains "Hello World."
The routine makes no checks if dest is large enough. The size of
dest must be at least strlen(dest)+n+1.
int strncmp(
const char * str1,
const char * str2,
size_t n)
Calculate str1 - str2 for upto n chars or upto the first 0 byte.
str1, str2 - Strings to compare
The difference of the strings. The difference is 0, if both are
equal, < 0 if str1 < str2 and > 0 if str1 > str2. Note that
it may be greater then 1 or less than -1.
This function is not part of a library and may thus be called
any time.
char * strncpy(
char * dest,
const char * src,
size_t n)
Copy a string. Works like an assignment "dest=src;". At most
n characters are copied.
dest - The string is copied into this variable. Make sure it is
large enough.
src - This is the new contents of dest.
n - How many characters to copy at most. If the string src is
smaller than that, only strlen(str)+1 bytes are copied.
No check is beeing made that dest is large enough for src.
char * strpbrk(
const char * str,
const char * accept)
Locate the first occurrence of any character in accept in str.
str - Search this string
accept - Look for these characters
A pointer to the first occurence of any character in accept in str
or NULL if no character of accept is not found in str.
char buffer[64];
strcpy (buffer, "Hello ");
// This returns a pointer to the first l in buffer.
strpbrk (buffer, "lo");
// This returns NULL
strpbrk (buffer, "xyz");
char * strrchr(
const char * str,
int c)
Searches for the last character c in a string.
str - Search this string
c - Look for this character
A pointer to the first occurence of c in str or NULL if c is not
found in str.
char buffer[64];
strcpy (buffer, "Hello ");
// This returns a pointer to the second l in buffer.
strrchr (buffer, 'l');
// This returns NULL
strrchr (buffer, 'x');
Reverse a string (rotate it about its midpoint)
s - The string to be reversed
The original string pointer
char buffer[64];
strcpy (buffer, "Hello);
strrev(buffer);
// buffer now contains "olleH"
char * strsep(
char ** strptr,
const char * sep)
Separates a string by the characters in sep.
str - The string to check or NULL if the next word in
the last string is to be searched.
sep - Characters which separate "words" in str.
The first word in str or the next one if str is NULL.
char buffer[64];
char **bufptr
strcpy (buffer, "Hello, this is a test.");
*bufptr = buffer
// First word. Returns "Hello"
strtok (bufptr, " \t,.");
// Next word. Returns "this"
strtok (bufptr, " \t,.");
// Next word. Returns "is"
strtok (bufptr, " \t");
// Next word. Returns "a"
strtok (bufptr, " \t");
// Next word. Returns "test."
strtok (bufptr, " \t");
// Next word. Returns NULL.
strtok (bufptr, " \t");
The function changes str !
size_t strspn(
const char * str,
const char * accept)
Calculates the length of the initial segment of str which consists
entirely of characters in accept.
str - The string to check.
accept - Characters which have to be in str.
Length of the initial segment of str which contains only
characters from accept.
char buffer[64];
strcpy (buffer, "Hello ");
// Returns 5
strspn (buffer, "Helo");
// Returns 0
strspn (buffer, "xyz");
char * strstr(
const char * str,
const char * search)
Searches for a string in a string.
str - Search this string
search - Look for this string
A pointer to the first occurence of search in str or NULL if search
is not found in str.
char buffer[64];
strcpy (buffer, "Hello ");
// This returns a pointer to the first l in buffer.
strstr (buffer, "llo ");
// This returns NULL
strstr (buffer, "llox");
double strtod(
const char * str,
char ** endptr)
Convert a string of digits into a double.
str - The string which should be converted. Leading
whitespace are ignored. The number may be prefixed
by a '+' or '-'. An 'e' or 'E' introduces the exponent.
Komma is only allowed before exponent.
endptr - If this is non-NULL, then the address of the first
character after the number in the string is stored
here.
The value of the string. The first character after the number
is returned in *endptr, if endptr is non-NULL. If no digits can
be converted, *endptr contains str (if non-NULL) and 0 is
returned.
intmax_t strtoimax(
const char * nptr,
char ** endptr,
int base)
Convert a string of digits into an integer according to the
given base. This function is like strtol() except the fact,
that it returns a value of type intmax_t.
str - The string which should be converted.
endptr - If this is non-NULL, then the address of the first
character after the number in the string is stored
here.
base - The base for the number.
The value of the string. The first character after the number
is returned in *endptr, if endptr is non-NULL. If no digits can
be converted, *endptr contains str (if non-NULL) and 0 is
returned.
char * strtok(
char * str,
const char * sep)
Separates a string by the characters in sep.
str - The string to check or NULL if the next word in
the last string is to be searched.
sep - Characters which separate "words" in str.
The first word in str or the next one if str is NULL.
char buffer[64];
strcpy (buffer, "Hello, this is a test.");
// Init. Returns "Hello"
strtok (str, " \t,.");
// Next word. Returns "this"
strtok (NULL, " \t,.");
// Next word. Returns "is"
strtok (NULL, " \t");
// Next word. Returns "a"
strtok (NULL, " \t");
// Next word. Returns "test."
strtok (NULL, " \t");
// Next word. Returns NULL.
strtok (NULL, " \t");
The function changes str !
long strtol(
const char * str,
char ** endptr,
int base)
Convert a string of digits into an integer according to the
given base.
str - The string which should be converted. Leading
whitespace are ignored. The number may be prefixed
by a '+' or '-'. If base is above 10, then the
alphabetic characters from 'A' are used to specify
digits above 9 (ie. 'A' or 'a' is 10, 'B' or 'b' is
11 and so on until 'Z' or 'z' is 35).
endptr - If this is non-NULL, then the address of the first
character after the number in the string is stored
here.
base - The base for the number. May be 0 or between 2 and 36,
including both. 0 means to autodetect the base. strtoul()
selects the base by inspecting the first characters
of the string. If they are "0x", then base 16 is
assumed. If they are "0", then base 8 is assumed. Any
other digit will assume base 10. This is like in C.
If you give base 16, then an optional "0x" may
precede the number in the string.
The value of the string. The first character after the number
is returned in *endptr, if endptr is non-NULL. If no digits can
be converted, *endptr contains str (if non-NULL) and 0 is
returned.
// returns 1, ptr points to the 0-Byte
strol (" \t +0x1", &ptr, 0);
// Returns 15. ptr points to the a
strol ("017a", &ptr, 0);
// Returns 215 (5*36 + 35)
strol ("5z", &ptr, 36);
long long strtoll(
const char * restrict str,
char ** restrict endptr,
int base)
Convert a string of digits into an integer according to the
given base.
str - The string which should be converted. Leading
whitespace are ignored. The number may be prefixed
by a '+' or '-'. If base is above 10, then the
alphabetic characters from 'A' are used to specify
digits above 9 (ie. 'A' or 'a' is 10, 'B' or 'b' is
11 and so on until 'Z' or 'z' is 35).
endptr - If this is non-NULL, then the address of the first
character after the number in the string is stored
here.
base - The base for the number. May be 0 or between 2 and 36,
including both. 0 means to autodetect the base. strtoul()
selects the base by inspecting the first characters
of the string. If they are "0x", then base 16 is
assumed. If they are "0", then base 8 is assumed. Any
other digit will assume base 10. This is like in C.
If you give base 16, then an optional "0x" may
precede the number in the string.
The value of the string. The first character after the number
is returned in *endptr, if endptr is non-NULL. If no digits can
be converted, *endptr contains str (if non-NULL) and 0 is
returned.
// returns 1, ptr points to the 0-Byte
strtoll (" \t +0x1", &ptr, 0);
// Returns 15. ptr points to the a
strtoll ("017a", &ptr, 0);
// Returns 215 (5*36 + 35)
strtoll ("5z", &ptr, 36);
unsigned long strtoul(
const char * str,
char ** endptr,
int base)
Convert a string of digits into an integer according to the
given base.
str - The string which should be converted. Leading
whitespace are ignored. The number may be prefixed
by a '+' or '-'. If base is above 10, then the
alphabetic characters from 'A' are used to specify
digits above 9 (ie. 'A' or 'a' is 10, 'B' or 'b' is
11 and so on until 'Z' or 'z' is 35).
endptr - If this is non-NULL, then the address of the first
character after the number in the string is stored
here.
base - The base for the number. May be 0 or between 2 and 36,
including both. 0 means to autodetect the base. strtoul()
selects the base by inspecting the first characters
of the string. If they are "0x", then base 16 is
assumed. If they are "0", then base 8 is assumed. Any
other digit will assume base 10. This is like in C.
If you give base 16, then an optional "0x" may
precede the number in the string.
The value of the string. The first character after the number
is returned in *endptr, if endptr is non-NULL. If no digits can
be converted, *endptr contains str (if non-NULL) and 0 is
returned.
// Returns 1, ptr points to the 0-Byte
strtoul (" \t +0x1", &ptr, 0);
// Returns 15. ptr points to the a
strtoul ("017a", &ptr, 0);
// Returns 215 (5*36 + 35)
strtoul ("5z", &ptr, 36);
unsigned long long strtoull(
const char * restrict str,
char ** restrict endptr,
int base)
Convert a string of digits into an integer according to the
given base.
str - The string which should be converted. Leading
whitespace are ignored. The number may be prefixed
by a '+' or '-'. If base is above 10, then the
alphabetic characters from 'A' are used to specify
digits above 9 (ie. 'A' or 'a' is 10, 'B' or 'b' is
11 and so on until 'Z' or 'z' is 35).
endptr - If this is non-NULL, then the address of the first
character after the number in the string is stored
here.
base - The base for the number. May be 0 or between 2 and 36,
including both. 0 means to autodetect the base. strtoull()
selects the base by inspecting the first characters
of the string. If they are "0x", then base 16 is
assumed. If they are "0", then base 8 is assumed. Any
other digit will assume base 10. This is like in C.
If you give base 16, then an optional "0x" may
precede the number in the string.
The value of the string. The first character after the number
is returned in *endptr, if endptr is non-NULL. If no digits can
be converted, *endptr contains str (if non-NULL) and 0 is
returned.
// Returns 1, ptr points to the 0-Byte
strtoull (" \t +0x1", &ptr, 0);
// Returns 15. ptr points to the a
strtoull ("017a", &ptr, 0);
// Returns 215 (5*36 + 35)
strtoull ("5z", &ptr, 36);
uintmax_t strtoumax(
const char * nptr,
char ** endptr,
int base)
Convert a string of digits into an integer according to the
given base. This function is like strtoul() except the fact,
that it returns a value of type uintmax_t.
str - The string which should be converted.
endptr - If this is non-NULL, then the address of the first
character after the number in the string is stored
here.
base - The base for the number.
The value of the string. The first character after the number
is returned in *endptr, if endptr is non-NULL. If no digits can
be converted, *endptr contains str (if non-NULL) and 0 is
returned.
char * strupr(
char * str)
Converts a string to all upper case characters. Modifies
the given string.
str - The string to convert.
The same string buffer is passed back with all characters converted.
size_t strxfrm(
char * restrict dst,
const char * restrict src,
size_t n)
The strxfrm() function transforms a null-terminated string pointed to by
src according to the current locale collation if any, then copies the
transformed string into dst. Not more than n characters are copied into
dst, including the terminating null character added. If n is set to 0
(it helps to determine an actual size needed for transformation), dst is
permitted to be a NULL pointer.
Comparing two strings using strcmp() after strxfrm() is equal to compar-
ing two original strings with strcoll().
dst - the destination string's buffer
src - the source string
n - the size of the dst buffer.
Upon successful completion, strxfrm() returns the length of the trans-
formed string not including the terminating null character. If this
value is n or more, the contents of dst are indeterminate.
void swab(
const void *from,
void *to,
size_t len)
int symlink(
const char *oldpath,
const char *newpath)
int system(
const char *string)
char * tempnam(
const char *dir,
const char *pfx)
time_t time(
time_t * tloc)
time() returns the time since 00:00:00 GMT, January 1, 1970,
measured in seconds.
tloc - If this pointer is non-NULL, then the time is written into
this variable as well.
time_t tt1, tt2;
// tt1 and tt2 are the same
tt1 = time (&tt2);
// This is valid, too
tt1 = time (NULL);
This function must not be used in a shared library or
in a threaded application.
clock_t times(
struct tms *tms)
The tmpfile() function returns a pointer to a stream
associated with a file descriptor returned by the routine
mkstemp(3). The created file is unlinked before tmpfile()
returns, causing the file to be automatically deleted when the
last reference to it is closed. The file is opened with the
access value `w+'. The file is created in the T: directory,
which is the standard AROS temp directory.
The tmpfile() function returns a pointer to an open file stream on
success. On error, a NULL pointer is returned and errno is set
appropriately.
ERRORS
The tmpfile() function may fail and set the global variable
errno for any of the errors specified for the library functions
fdopen() or mkstemp().
#include <errno.h>
#include <stdio.h>
#include <string.h>
main()
{
FILE * fp;
fp = tmpfile();
if ( fp == NULL)
{
perror(strerror(errno));
return;
}
fprintf(fp, "do a bit of writing to the temp file");
}
BUG1: The temporary file is neither closed nor deleted. Ideally,
unlink() could be used to mark the temp file for removal (see
BUG1 in the source code) - but I suspect a bug in unlink() itself,
whereby it tries to remove the file straight away, rather than
waiting for all references to it to be closed. The bug is not too
serious, because all temp files are written to the T: directory,
which get zapped when AROS is closed down. However, problems may
exist when you start creating over 26 temp files with the same PID.
int truncate(
const char *path,
off_t length)
Truncate a file to a specified length
path - the path of the file being truncated
lenght - The file will have at most this size
0 on success or -1 on errorr.
If the file previously was larger than this size, the extra data
is lost. If the file previously was shorter, it is
unspecified whether the file is left unchanged or is
extended. In the latter case the extended part reads as
zero bytes.
mode_t umask(
mode_t numask)
int uname(
struct utsname *name)
Store information about the operating system in the structure pointed
by name.
name - Pointer to utsname structure defined in <sys/utsname.h>.
If the information was stored successfully, zero is returned. Otherwise
function returns -1 and sets errno appropriately.
int ungetc(
int c,
FILE * stream)
Puch the character c character back into the stream.
c - Put this character back into the stream. The next read will
return this character. If you push back more than one
character, then they will be returned in reverse order.
The function gurantees that one character can be
pushed back but no more. It is possible to push the EOF
character back into the stream.
stream - Read from this stream
int unlink(
const char * pathname)
pathname - Complete path to the file
0 on success and -1 on error. In case of an error, errno is set.
// Delete the file xyz in the current directory
unlink ("xyz");
void unsetenv(
const char *name)
deletes a variable from the environment.
name -- Name of the environment variable to delete.
Returns zero on success, or -1 if the variable was not found.
Update stdin, stdout, stderr to reflect changes done by calling
dos.library functions like SelectInput(), ...
stdin, stdout and stderr will be flushed before they are updated.
int usleep(
useconds_t usec)
Suspends program execution for a given number of microseconds.
usec - number of microseconds to wait
0 on success, -1 on error
int utime(
const char *filename,
struct utimbuf *buf)
Change last access and last modification time of the given file to
times specified in given utimbuf structure. If buf is NULL, the
current time will be used instead.
The utimbuf structure contains of two fields:
time_t actime; - last access time
time_t modtime; - last modification time
filename - Name of the file
buf - Pointer to utimbuf structure describing specified time.
0 on success and -1 on error. If an error occurred, the global
variable errno is set.
This function can be used to set access and modification times with
a resolution of 1 second, use utimes() if you need better precision.
Since AROS has no notion of last access time, actime field is silently
ignored, only modification time of the file is set.
int utimes(
const char *file,
struct timeval tvp[2])
Change last access and last modification time of the given file to
times specified in tvp array. If tvp is NULL, the current time will be
used instead.
filename - Name of the file
buf - Pointer to an array of two timeval structures. First structure
specifies the last access time, second specifies the last
modification time
0 on success and -1 on error. If an error occurred, the global
variable errno is set.
The timeval structure has microsecond resolution, but in reality
this function has time resolution of 1 tick.
Since AROS has no notion of last access time, it's silently ignored
and only modification time of the file is set.
int vfprintf(
FILE * stream,
const char * format,
va_list args)
Format a list of arguments and print them on the specified stream.
stream - A stream on which one can write
format - A printf() format string.
args - A list of arguments for the format string.
The number of characters written.
int vfscanf(
FILE * stream,
const char * format,
va_list args)
Read the scream, scan it as the format specified and write the
result of the conversion into the specified arguments.
stream - A stream to read from
format - A scanf() format string.
args - A list of arguments for the results.
The number of converted arguments.
int vprintf(
const char * format,
va_list args)
Format a list of arguments and print them on the standard output.
format - A printf() format string.
args - A list of arguments for the format string.
The number of characters written.
int vscanf(
const char * format,
va_list args)
Scan the standard input and convert it into the arguments as
specified by format.
format - A scanf() format string.
args - A list of arguments for the results
The number of converted parameters.
int vsnprintf(
char * str,
size_t n,
const char * format,
va_list args)
Format a list of arguments and put them into the string str.
The function makes sure that no more than n characters (including
the terminal 0 byte) are written into str.
str - The formatted result is stored here
n - The size of str
format - A printf() format string.
args - A list of arguments for the format string.
The number of characters written into the string. The 0 byte at the
end is not included. If this is greater than or equal to n then
there was not enough room to write all characters. In this case the
output string is not null-terminated, and the return value is the
number of characters which would have been written if enough space had
been available.
int vsprintf(
char * str,
const char * format,
va_list args)
Format a list of arguments and put them into the string str.
str - The formatted result is stored here
format - A printf() format string.
args - A list of arguments for the format string.
The number of characters written.
No check is beeing made that str is large enough to contain
the result.
int vsscanf(
const char *str,
const char *format,
va_list args)
Scan a string and convert it into the arguments as specified
by format.
str - Scan this string
format - A scanf() format string.
args - A list of arguments for the results
The number of arguments converted.
Waits for child process to change state. State change is one of the
following events: child has exited, child was terminated by a signal,
child was stopped by a signal, child was resumed by a signal.
The function stores status of the process that changed state in the
pointer given as status argument.
The following macros can be used to extract information from the
status value:
WIFEXITED(status) - true if the process has exited
WEXITSTATUS(status) - exit status of the exited process
WIFSIGNALED(status) - true if the child process was terminated by a
signal
WTERMSIG(status) - number of the signal that caused process
termination
WIFSTOPPED(status) - true if the child process was stopped by a
signal
WSTOPSIG(status) - number of the signal that caused child process
stop
WIFCONTINUED(status) - true if the child process was resumed by the
SIGCONT signal.
Parent process will be suspended until a child changes state. If a
child process has already changed state, function returns immediately.
status - Pointer to int where child return status will be stored or
NULL if you don't want to store status.
Process id of the child process on success or -1 on error. If an error
occurred, the global variable errno is set.
This function will work only for child processeses notifying parent
process of their death, for example processes created by vfork() call.
If you want to use it for other processes, remember to set the
NP_NotifyOnDeath tag value to TRUE during child process creation.
pid_t waitpid(
pid_t pid,
int *status,
int options)
Waits for child process with given process id to change state. State
change is one of the following events: child has exited, child was
terminated by a signal, child was stopped by a signal, child was
resumed by a signal.
The function stores status of the process that changed state in the
pointer given as status argument.
The following macros can be used to extract information from the
status value:
WIFEXITED(status) - true if the process has exited
WEXITSTATUS(status) - exit status of the exited process
WIFSIGNALED(status) - true if the child process was terminated by a
signal
WTERMSIG(status) - number of the signal that caused process
termination
WIFSTOPPED(status) - true if the child process was stopped by a
signal
WSTOPSIG(status) - number of the signal that caused child process
stop
WIFCONTINUED(status) - true if the child process was resumed by the
SIGCONT signal.
Unless WNOHANG option is set, parent process will be suspended until a
child changes state. If a child process has already changed state,
function returns immediately.
pid - Process id of the process you want to wait for or -1 to wait for
any child process
status - Pointer to int where child status will be stored or NULL if
you don't want to store status.
options - ORed zero or more of the following constants:
WNOHANG - return immediately if no child process changed state
Process id of the child process on success or -1 on error. If an error
occurred, the global variable errno is set.
This function will work only for child processeses notifying parent
process of their death, for example processes created by vfork() call.
If you want to use it for other processes, remember to set the
NP_NotifyOnDeath tag value to TRUE during child process creation.
size_t wcstombs(
char *s,
const wchar_t *pwcs,
size_t n)
int wctomb(
char *s,
wchar_t wchar)
ssize_t write(
int fd,
const void * buf,
size_t count)
Write an amount of characters to the specified file descriptor.
fd - The file descriptor to write to
buf - Write these bytes into the file descriptor
count - Write that many bytes
The number of characters written or -1 on error.
Docutils System Messages
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 304); backlink
Unknown target name: "execle()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 304); backlink
Unknown target name: "execlpe()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 304); backlink
Unknown target name: "execvpe()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 304); backlink
Unknown target name: "spawn()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 304); backlink
Unknown target name: "spawnl()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 304); backlink
Unknown target name: "spawnle()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 304); backlink
Unknown target name: "spawnlp()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 304); backlink
Unknown target name: "spawnlpe()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 304); backlink
Unknown target name: "spawnp()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 304); backlink
Unknown target name: "spawnve()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 304); backlink
Unknown target name: "spawnvpe()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 576); backlink
Unknown target name: "fabs()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 1539); backlink
Unknown target name: "scandir()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 1828); backlink
Unknown target name: "scandir()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 3837); backlink
Unknown target name: "ecvt()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 3837); backlink
Unknown target name: "fcvt()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 5444); backlink
Unknown target name: "fabs()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 6096); backlink
Unknown target name: "memmove()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 6096); backlink
Unknown target name: "memcpy()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 6479); backlink
Unknown target name: "scandir()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 7338); backlink
Unknown target name: "scandir()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8263); backlink
Unknown target name: "execle()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8263); backlink
Unknown target name: "execlpe()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8263); backlink
Unknown target name: "execvpe()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8263); backlink
Unknown target name: "spawn()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8263); backlink
Unknown target name: "spawnl()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8263); backlink
Unknown target name: "spawnle()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8263); backlink
Unknown target name: "spawnlp()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8263); backlink
Unknown target name: "spawnlpe()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8263); backlink
Unknown target name: "spawnp()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8263); backlink
Unknown target name: "spawnve()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8263); backlink
Unknown target name: "spawnvpe()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8343); backlink
Unknown target name: "execle()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8343); backlink
Unknown target name: "execlpe()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8343); backlink
Unknown target name: "execvpe()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8343); backlink
Unknown target name: "spawn()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8343); backlink
Unknown target name: "spawnl()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8343); backlink
Unknown target name: "spawnle()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8343); backlink
Unknown target name: "spawnlp()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8343); backlink
Unknown target name: "spawnlpe()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8343); backlink
Unknown target name: "spawnp()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8343); backlink
Unknown target name: "spawnve()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 8343); backlink
Unknown target name: "spawnvpe()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 9517); backlink
Unknown target name: "memcpy()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 9517); backlink
Unknown target name: "memmove()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 9973); backlink
Unknown target name: "memcpy()".
System Message: ERROR/3 (/data/deadwood/AROS/documentation/documentation/developers/autodocs/clib.en, line 9973); backlink
Unknown target name: "memmove()".
|