[m-rev.] for review: make the deep profiler work again
Fergus Henderson
fjh at cs.mu.OZ.AU
Fri Nov 15 22:32:55 AEDT 2002
On 15-Nov-2002, Zoltan Somogyi <zs at cs.mu.OZ.AU> wrote:
> On 15-Nov-2002, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> > Zoltan wrote:
> > > +:- pragma foreign_decl("C", "
> > > +#include <stdio.h>
> > > +#include <stdlib.h>
> > > +#include <unistd.h>
> > > +#include <sys/types.h>
> > > +#include <sys/stat.h>
> > > +#include <fcntl.h>
> > > +").
> >
> > These includes need to be protected with #ifdefs,
>
> Done.
>
> > and/or the code in configure.in needs to check that these headers
> > exist before enabling the deep profiler.
>
> Will do; I believe I can assume the presence of stdio.h, but I am not sure
> about stdlib.
<stdlib.h> is part of the 1989 C standard, so yes, you can assume it
will be present.
For future reference, I have attached a list of all the names (functions,
macros, headers, etc.) defined in C89. The attachment also lists the
names defined in the first Posix (1003.1) standard. There is
also a similar list at <www.unix-systems.org>.
> > What about `help' and `version'?
>
> mdprof_cgi ignores its command line if QUERY_STRING is set, because web
> servers can pass the query URL in strangely-chopped-up bits and pieces
> on the command line. I could make mdprof_cgi respect these options
> if QUERY_STRING isn't set.
That would be good.
> > (`version' is particularly important in this case since
> > this file will get installed in a non-version-specific directory.)
>
> What should we report? Of course 0.11 for the release, but we don't
> want it to keep on reporting 0.11. I could call library__version,
> but the deep_profiler can change version even if the library doesn't.
Just use library__version. With the way we currently distribute the deep
profiler and library together as part of the mercury-compiler package,
using library__version will always be correct. If we start distributing
the deep profiler separately, we can change add a separate version when
we do that. (Note that the compiler and the ordinary profiler both use
library__version too, so they will need the same treatment if we split
them out into separate distributions.)
> I also note that mmc doesn't understand --version. The same issues
> apply there.
Yes, although for mmc the issue is less critical because
(1) mmc is by default installed in a version-specific directory
and (2) mmc prints the version number (and some other stuff)
if you invoke it with no options.
We should fix this at some point, but it's not release-critical.
> Done.
>
> > In fact, this code should be extracted out into a subroutine
> > (called e.g. "make_directory_and_parent_dirs").
>
> I will leave this change until later.
OK, but in the mean time please add an XXX comment.
> > > Index: deep_profiler/startup.m
> > > +:- pred maybe_report_stats(maybe(io__output_stream)::in,
> > > + io__state::di, io__state::uo) is det.
> > > +
> > > +maybe_report_stats(yes(_)) --> [].
> > > + % io__report_stats("standard"). XXX
> > > +maybe_report_stats(no) --> [].
> >
> > The XXX comment should explain why this is commented out.
>
> I added:
>
> % XXX: io__report_stats writes to the current output stream, which in
> % mdprof_cgi is the closed stream stdout. We want to write the report
> % to _OutputStream, but the library doesn't support that yet. We don't
> % want to set and unset the current output stream, since io__see/io__seen
> % don't use a stack of I/O streams.
The comment "the library doesn't support that yet" is wrong.
Just do
io__set_current_output(OutputStream, OldOutputStream),
io__report_stats("standard"),
io__set_current_output(OldOutputStream, _)
> > > +% Get the lock on the named mutex file if the bool is `no'.
> > > +% If the bool is `yes', meaning debugging is enabled, do nothing.
> > > +
> > > +:- pred get_lock(bool::in, string::in,
> > > + io__state::di, io__state::uo) is det.
> >
> > Does this acquire a lock on the named file, thus preventing other
> > threads/processes from accessing it, or does it use (the existence or
> > nonexistence of) the named file to implement a mutex lock?
> > If the latter, then IMHO the comment is misleading.
>
> I don't think it is since Unix doesn't support mandatory locks, but I added
>
> % (The mutex file exists iff some process holds the lock.)
>
> to both comments.
I was thinking more along the lines of changing "get the lock on the
named mutex file" to "acquire the lock with the specified name".
--
Fergus Henderson <fjh at cs.mu.oz.au> | "I have always known that the pursuit
The University of Melbourne | of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp.
-------------- next part --------------
From: ddm26 at cas.org (De Mickey)
Message-ID: <1994Jul27.141717.29920 at chemabs.uucp>
Summary: list of POSIX and ANSI C identifiers
Date: Wed, 27 Jul 1994 14:17:17 GMT
OK, here is a list, somewhat along the lines you are asking
for, that I put together some time back. It includes the
identifiers you should find in conforming ANSI C and POSIX.1
headers. If you find any bugs, omissions, etc., please let
me know. Anybody got a similar list for XPG3 and/or XPG4?
A present from me to comp.std.c :-)
De Mickey
ddm26 at cas.org
--------
ANSI C and POSIX.1 Symbol/Header Cross Reference
================================================
The following list provides a cross reference table between
ANSI/ISO Standard C and POSIX P1003.1 symbols
The table includes the following fields (in order):
Std - which standard defines the symbol
ANSI/ISO Standard C, or POSIX P1003.1
Pimary Header - the header where the symbol is declared
or defined. Symbols that are defined
in multiple headers have multiple
entries in the cross-reference table.
Symbol Type - macro, function, variable, struct, or
typedef. Note that any function can also
(optionally) exist as a macro, and that
some symbols can be either macros or
functions depending on the implemention.
Symbol - actual identifier. Functions and
function-like macros are shown with parens
Prerequisite Headers - other headers that should be included
before the primary header in code using
this function
Primary Symbol Prerequisite
Std. Header Type Symbol Headers
==== ======= ====== ====== ============
ANSI <assert.h> macro NDEBUG
ANSI <ctype.h> function isalnum()
POSIX <dirent.h> function readdir() <sys/types.h>
POSIX <dirent.h> struct dirent
POSIX <dirent.h> typedef DIR
POSIX <errno.h> macro EINTR
ANSI <assert.h> macro NDEBUG
ANSI <assert.h> macro assert()
ANSI <ctype.h> function isalnum()
ANSI <ctype.h> function isalpha()
ANSI <ctype.h> function iscntrl()
ANSI <ctype.h> function isdigit()
ANSI <ctype.h> function isgraph()
ANSI <ctype.h> function islower()
ANSI <ctype.h> function isprint()
ANSI <ctype.h> function ispunct()
ANSI <ctype.h> function isspace()
ANSI <ctype.h> function isupper()
ANSI <ctype.h> function isxdigit()
ANSI <ctype.h> function tolower()
ANSI <ctype.h> function toupper()
POSIX <dirent.h> function closedir() <sys/types.h>
POSIX <dirent.h> function opendir() <sys/types.h>
POSIX <dirent.h> function readdir() <sys/types.h>
POSIX <dirent.h> function rewinddir() <sys/types.h>
POSIX <dirent.h> struct dirent
POSIX <dirent.h> typedef DIR
POSIX <errno.h> macro E2BIG
POSIX <errno.h> macro EACCES
POSIX <errno.h> macro EAGAIN
POSIX <errno.h> macro EBADF
POSIX <errno.h> macro EBUSY
POSIX <errno.h> macro ECHILD
POSIX <errno.h> macro EDEADLK
ANSI <errno.h> macro EDOM
POSIX <errno.h> macro EEXIST
POSIX <errno.h> macro EFAULT
POSIX <errno.h> macro EFBIG
POSIX <errno.h> macro EINTR
POSIX <errno.h> macro EINVAL
POSIX <errno.h> macro EIO
POSIX <errno.h> macro EISDIR
POSIX <errno.h> macro EMFILE
POSIX <errno.h> macro EMLINK
POSIX <errno.h> macro ENAMETOOLONG
POSIX <errno.h> macro ENFILE
POSIX <errno.h> macro ENODEV
POSIX <errno.h> macro ENOENT
POSIX <errno.h> macro ENOEXEC
POSIX <errno.h> macro ENOLCK
POSIX <errno.h> macro ENOMEM
POSIX <errno.h> macro ENOSPC
POSIX <errno.h> macro ENOSYS
POSIX <errno.h> macro ENOTDIR
POSIX <errno.h> macro ENOTEMPTY
POSIX <errno.h> macro ENOTTY
POSIX <errno.h> macro ENXIO
POSIX <errno.h> macro EPERM
POSIX <errno.h> macro EPIPE
ANSI <errno.h> macro ERANGE
POSIX <errno.h> macro EROFS
POSIX <errno.h> macro ESPIPE
POSIX <errno.h> macro ESRCH
POSIX <errno.h> macro EXDEV
ANSI <errno.h> variable errno
POSIX <fcntl.h> function creat() <sys/types.h> <sys/stat.h>
POSIX <fcntl.h> function fcntl() <sys/types.h> <unistd.h>
POSIX <fcntl.h> function open() <sys/types.h> <sys/stat.h>
POSIX <fcntl.h> macro FD_CLOEXEC
POSIX <fcntl.h> macro F_DUPFD
POSIX <fcntl.h> macro F_GETFD
POSIX <fcntl.h> macro F_GETFL
POSIX <fcntl.h> macro F_GETLK
POSIX <fcntl.h> macro F_RDLCK
POSIX <fcntl.h> macro F_SETFD
POSIX <fcntl.h> macro F_SETFL
POSIX <fcntl.h> macro F_SETLK
POSIX <fcntl.h> macro F_SETLKW
POSIX <fcntl.h> macro F_UNLCK
POSIX <fcntl.h> macro F_WRLCK
POSIX <fcntl.h> macro O_ACCMODE
POSIX <fcntl.h> macro O_APPEND
POSIX <fcntl.h> macro O_CREAT
POSIX <fcntl.h> macro O_EXCL
POSIX <fcntl.h> macro O_NOCTTY
POSIX <fcntl.h> macro O_NONBLOCK
POSIX <fcntl.h> macro O_RDONLY
POSIX <fcntl.h> macro O_RDWR
POSIX <fcntl.h> macro O_TRUNC
POSIX <fcntl.h> macro O_WRONLY
POSIX <fcntl.h> struct flock
ANSI <float.h> macro DBL_DIG
ANSI <float.h> macro DBL_EPSILON
ANSI <float.h> macro DBL_MANT_DIG
ANSI <float.h> macro DBL_MAX
ANSI <float.h> macro DBL_MAX_10_EXP
ANSI <float.h> macro DBL_MAX_EXP
ANSI <float.h> macro DBL_MIN
ANSI <float.h> macro DBL_MIN_10_EXP
ANSI <float.h> macro DBL_MIN_EXP
ANSI <float.h> macro FLT_DIG
ANSI <float.h> macro FLT_EPSILON
ANSI <float.h> macro FLT_MANT_DIG
ANSI <float.h> macro FLT_MAX
ANSI <float.h> macro FLT_MAX_10_EXP
ANSI <float.h> macro FLT_MAX_EXP
ANSI <float.h> macro FLT_MIN
ANSI <float.h> macro FLT_MIN_10_EXP
ANSI <float.h> macro FLT_MIN_EXP
ANSI <float.h> macro FLT_RADIX
ANSI <float.h> macro FLT_ROUNDS
ANSI <float.h> macro LDBL_DIG
ANSI <float.h> macro LDBL_EPSILON
ANSI <float.h> macro LDBL_MANT_DIG
ANSI <float.h> macro LDBL_MAX
ANSI <float.h> macro LDBL_MAX_10_EXP
ANSI <float.h> macro LDBL_MAX_EXP
ANSI <float.h> macro LDBL_MIN
ANSI <float.h> macro LDBL_MIN_10_EXP
ANSI <float.h> macro LDBL_MIN_EXP
POSIX <grp.h> function getgrgid() <sys/types.h>
POSIX <grp.h> function getgrnam() <sys/types.h>
POSIX <grp.h> struct group
POSIX <limits.h> macro ARG_MAX
ANSI <limits.h> macro CHAR_BIT
ANSI <limits.h> macro CHAR_MAX
ANSI <limits.h> macro CHAR_MIN
POSIX <limits.h> macro CHILD_MAX
ANSI <limits.h> macro INT_MAX
ANSI <limits.h> macro INT_MIN
POSIX <limits.h> macro LINK_MAX
ANSI <limits.h> macro LONG_MAX
ANSI <limits.h> macro LONG_MIN
POSIX <limits.h> macro MAX_CANON
POSIX <limits.h> macro MAX_INPUT
ANSI <limits.h> macro MB_LEN_MAX
POSIX <limits.h> macro NAME_MAX
POSIX <limits.h> macro NGROUPS_MAX
POSIX <limits.h> macro OPEN_MAX
POSIX <limits.h> macro PATH_MAX
POSIX <limits.h> macro PIPE_BUF
ANSI <limits.h> macro SCHAR_MAX
ANSI <limits.h> macro SCHAR_MIN
ANSI <limits.h> macro SHRT_MAX
ANSI <limits.h> macro SHRT_MIN
POSIX <limits.h> macro SSIZE_MAX
POSIX <limits.h> macro STREAM_MAX
POSIX <limits.h> macro TZNAME_MAX
ANSI <limits.h> macro UCHAR_MAX
ANSI <limits.h> macro UINT_MAX
ANSI <limits.h> macro ULONG_MAX
ANSI <limits.h> macro USHRT_MAX
POSIX <limits.h> macro _POSIX_ARG_MAX
POSIX <limits.h> macro _POSIX_CHILD_MAX
POSIX <limits.h> macro _POSIX_LINK_MAX
POSIX <limits.h> macro _POSIX_MAX_CANON
POSIX <limits.h> macro _POSIX_MAX_INPUT
POSIX <limits.h> macro _POSIX_NAME_MAX
POSIX <limits.h> macro _POSIX_NGROUPS_MAX
POSIX <limits.h> macro _POSIX_OPEN_MAX
POSIX <limits.h> macro _POSIX_PATH_MAX
POSIX <limits.h> macro _POSIX_PIPE_BUF
POSIX <limits.h> macro _POSIX_SSIZE_MAX
POSIX <limits.h> macro _POSIX_STREAM_MAX
POSIX <limits.h> macro _POSIX_TZNAME_MAX
ANSI <locale.h> function localeconv()
ANSI <locale.h> function setlocale()
ANSI <locale.h> macro LC_ALL
ANSI <locale.h> macro LC_COLLATE
ANSI <locale.h> macro LC_CTYPE
ANSI <locale.h> macro LC_MONETARY
ANSI <locale.h> macro LC_NUMERIC
ANSI <locale.h> macro LC_TIME
ANSI <locale.h> macro NULL
ANSI <locale.h> struct lconv
ANSI <math.h> function acos()
ANSI <math.h> function asin()
ANSI <math.h> function atan()
ANSI <math.h> function atan2()
ANSI <math.h> function ceil()
ANSI <math.h> function cos()
ANSI <math.h> function cosh()
ANSI <math.h> function exp()
ANSI <math.h> function fabs()
ANSI <math.h> function floor()
ANSI <math.h> function fmod()
ANSI <math.h> function frexp()
ANSI <math.h> function ldexp()
ANSI <math.h> function log()
ANSI <math.h> function log10()
ANSI <math.h> function modf()
ANSI <math.h> function pow()
ANSI <math.h> function sin()
ANSI <math.h> function sinh()
ANSI <math.h> function sqrt()
ANSI <math.h> function tan()
ANSI <math.h> function tanh()
ANSI <math.h> macro HUGE_VAL
POSIX <pwd.h> function getpwnam() <sys/types.h>
POSIX <pwd.h> function getpwuid() <sys/types.h>
POSIX <pwd.h> struct passwd
ANSI <setjmp.h> function longjmp()
ANSI <setjmp.h> function setjmp()
POSIX <setjmp.h> function siglongjmp()
POSIX <setjmp.h> function sigsetjmp()
ANSI <setjmp.h> typedef jmp_buf
POSIX <setjmp.h> typedef sigjmp_buf
POSIX <signal.h> function kill() <sys/types.h>
ANSI <signal.h> function raise()
POSIX <signal.h> function sigaction()
POSIX <signal.h> function sigaddset()
POSIX <signal.h> function sigdelset()
POSIX <signal.h> function sigemptyset()
POSIX <signal.h> function sigfillset()
POSIX <signal.h> function sigismember()
ANSI <signal.h> function signal()
POSIX <signal.h> function sigpending()
POSIX <signal.h> function sigprocmask()
POSIX <signal.h> function sugsuspend()
POSIX <signal.h> macro SA_NOCLDSTOP
POSIX <signal.h> macro SIGABRT
ANSI <signal.h> macro SIGABRT
POSIX <signal.h> macro SIGALRM
POSIX <signal.h> macro SIGCHLD
POSIX <signal.h> macro SIGCONT
POSIX <signal.h> macro SIGFPE
ANSI <signal.h> macro SIGFPE
POSIX <signal.h> macro SIGHUP
POSIX <signal.h> macro SIGILL
ANSI <signal.h> macro SIGILL
POSIX <signal.h> macro SIGINT
ANSI <signal.h> macro SIGINT
POSIX <signal.h> macro SIGKILL
POSIX <signal.h> macro SIGPIPE
POSIX <signal.h> macro SIGQUIT
POSIX <signal.h> macro SIGSEGV
ANSI <signal.h> macro SIGSEGV
POSIX <signal.h> macro SIGSTOP
POSIX <signal.h> macro SIGTERM
ANSI <signal.h> macro SIGTERM
POSIX <signal.h> macro SIGTSTP
POSIX <signal.h> macro SIGTTIN
POSIX <signal.h> macro SIGTTOU
POSIX <signal.h> macro SIGUSR1
POSIX <signal.h> macro SIGUSR2
POSIX <signal.h> macro SIG_BLOCK
ANSI <signal.h> macro SIG_DFL
POSIX <signal.h> macro SIG_DLF
POSIX <signal.h> macro SIG_ERR
ANSI <signal.h> macro SIG_ERR
ANSI <signal.h> macro SIG_IGN
POSIX <signal.h> macro SIG_SETMASK
POSIX <signal.h> macro SIG_UNBLOCK
POSIX <signal.h> struct sigaction
ANSI <signal.h> typedef sig_atomic_t
POSIX <signal.h> typeset sigset_t
ANSI <stdarg.h> macro va_arg()
ANSI <stdarg.h> macro va_end()
ANSI <stdarg.h> macro va_start()
ANSI <stdarg.h> typedef va_list
ANSI <stddef.h> macro NULL
ANSI <stddef.h> macro offsetof()
ANSI <stddef.h> typedef ptrdiff_t
ANSI <stddef.h> typedef size_t
ANSI <stddef.h> typedef wchar_t
ANSI <stdio.h> function clearerr()
ANSI <stdio.h> function fclose()
POSIX <stdio.h> function fdopen()
ANSI <stdio.h> function feof()
ANSI <stdio.h> function ferror()
ANSI <stdio.h> function fflush()
ANSI <stdio.h> function fgetc()
ANSI <stdio.h> function fgetpos()
ANSI <stdio.h> function fgets()
POSIX <stdio.h> function fileno()
ANSI <stdio.h> function fopen()
ANSI <stdio.h> function fprintf()
ANSI <stdio.h> function fputc()
ANSI <stdio.h> function fputs()
ANSI <stdio.h> function fread()
ANSI <stdio.h> function freopen()
ANSI <stdio.h> function fscanf()
ANSI <stdio.h> function fseek()
ANSI <stdio.h> function fsetpos()
ANSI <stdio.h> function ftell()
ANSI <stdio.h> function fwrite()
ANSI <stdio.h> function getc()
ANSI <stdio.h> function getchar()
ANSI <stdio.h> function gets()
ANSI <stdio.h> function perror()
ANSI <stdio.h> function printf()
ANSI <stdio.h> function putc()
ANSI <stdio.h> function putchar()
ANSI <stdio.h> function puts()
ANSI <stdio.h> function remove()
ANSI <stdio.h> function rename()
ANSI <stdio.h> function rewind()
ANSI <stdio.h> function scanf()
ANSI <stdio.h> function setbuf()
ANSI <stdio.h> function setvbuf()
ANSI <stdio.h> function sprintf()
ANSI <stdio.h> function sscanf()
ANSI <stdio.h> function tmpfile()
ANSI <stdio.h> function tmpnam()
ANSI <stdio.h> function ungetc()
ANSI <stdio.h> function vfprintf()
ANSI <stdio.h> function vprintf()
ANSI <stdio.h> function vsprintf()
ANSI <stdio.h> macro BUFSIZ
ANSI <stdio.h> macro EOF
ANSI <stdio.h> macro FILENAME_MAX
ANSI <stdio.h> macro FOPEN_MAX
POSIX <stdio.h> macro L_ctermid
ANSI <stdio.h> macro L_tmpnam
ANSI <stdio.h> macro NULL
ANSI <stdio.h> macro SEEK_CUR
ANSI <stdio.h> macro SEEK_END
ANSI <stdio.h> macro SEEK_SET
POSIX <stdio.h> macro STREAM_MAX
ANSI <stdio.h> macro TMP_MAX
ANSI <stdio.h> macro _IOFBF
ANSI <stdio.h> macro _IOLBF
ANSI <stdio.h> macro _IONBF
ANSI <stdio.h> typedef FILE
ANSI <stdio.h> typedef fpos_t
ANSI <stdio.h> typedef size_t
ANSI <stdio.h> variable stderr
ANSI <stdio.h> variable stdin
ANSI <stdio.h> variable stdout
ANSI <stdlib.h> function abort()
ANSI <stdlib.h> function abs()
ANSI <stdlib.h> function atexit()
ANSI <stdlib.h> function atof()
ANSI <stdlib.h> function atoi()
ANSI <stdlib.h> function atol()
ANSI <stdlib.h> function bsearch()
ANSI <stdlib.h> function calloc()
ANSI <stdlib.h> function div()
ANSI <stdlib.h> function exit()
ANSI <stdlib.h> function free()
ANSI <stdlib.h> function getenv()
ANSI <stdlib.h> function labs()
ANSI <stdlib.h> function ldiv()
ANSI <stdlib.h> function malloc()
ANSI <stdlib.h> function mblen()
ANSI <stdlib.h> function mbstowcs()
ANSI <stdlib.h> function mbtowc()
ANSI <stdlib.h> function qsort()
ANSI <stdlib.h> function rand()
ANSI <stdlib.h> function realloc()
ANSI <stdlib.h> function srand()
ANSI <stdlib.h> function strtod()
ANSI <stdlib.h> function strtol()
ANSI <stdlib.h> function strtoul()
ANSI <stdlib.h> function system()
ANSI <stdlib.h> function wcstombs()
ANSI <stdlib.h> function wctomb()
ANSI <stdlib.h> macro EXIT_FAILURE
ANSI <stdlib.h> macro EXIT_SUCCESS
ANSI <stdlib.h> macro MB_CUR_MAX
ANSI <stdlib.h> macro NULL
ANSI <stdlib.h> macro RAND_MAX
ANSI <stdlib.h> typedef div_t
ANSI <stdlib.h> typedef ldiv_t
ANSI <stdlib.h> typedef size_t
ANSI <stdlib.h> typedef wchar_t
ANSI <string.h> function memchr()
ANSI <string.h> function memcmp()
ANSI <string.h> function memcpy()
ANSI <string.h> function memmove()
ANSI <string.h> function memset()
ANSI <string.h> function strcat()
ANSI <string.h> function strchr()
ANSI <string.h> function strcmp()
ANSI <string.h> function strcoll()
ANSI <string.h> function strcpy()
ANSI <string.h> function strcspn()
ANSI <string.h> function strerror()
ANSI <string.h> function strlen()
ANSI <string.h> function strncat()
ANSI <string.h> function strncmp()
ANSI <string.h> function strncpy()
ANSI <string.h> function strpbrk()
ANSI <string.h> function strrchr()
ANSI <string.h> function strspn()
ANSI <string.h> function strstr()
ANSI <string.h> function strtok()
ANSI <string.h> function strxfrm()
ANSI <string.h> macro NULL
ANSI <string.h> typedef size_t
POSIX <sys/stat.h> function chmod() <sys/types.h>
POSIX <sys/stat.h> function fstat() <sys/types.h>
POSIX <sys/stat.h> function mkdir() <sys/types.h>
POSIX <sys/stat.h> function mkfifo() <sys/types.h>
POSIX <sys/stat.h> function stat() <sys/types.h>
POSIX <sys/stat.h> function umask() <sys/types.h>
POSIX <sys/stat.h> macro S_IRGRP
POSIX <sys/stat.h> macro S_IROTH
POSIX <sys/stat.h> macro S_IRUSR
POSIX <sys/stat.h> macro S_IRWXG
POSIX <sys/stat.h> macro S_IRWXO
POSIX <sys/stat.h> macro S_IRWXU
POSIX <sys/stat.h> macro S_ISBLK()
POSIX <sys/stat.h> macro S_ISCHR()
POSIX <sys/stat.h> macro S_ISDIR()
POSIX <sys/stat.h> macro S_ISFIFO()
POSIX <sys/stat.h> macro S_ISGID
POSIX <sys/stat.h> macro S_ISREG()
POSIX <sys/stat.h> macro S_ISUID
POSIX <sys/stat.h> macro S_IWGRP
POSIX <sys/stat.h> macro S_IWOTH
POSIX <sys/stat.h> macro S_IWUSR
POSIX <sys/stat.h> macro S_IXGRP
POSIX <sys/stat.h> macro S_IXOTH
POSIX <sys/stat.h> macro S_IXUSR
POSIX <sys/stat.h> struct stat
POSIX <sys/times.h> function times()
POSIX <sys/times.h> struct tms
POSIX <sys/times.h> typedef clock_t
POSIX <sys/types.h> typedef dev_t
POSIX <sys/types.h> typedef gid_t
POSIX <sys/types.h> typedef ino_t
POSIX <sys/types.h> typedef mode_t
POSIX <sys/types.h> typedef nlink_t
POSIX <sys/types.h> typedef off_t
POSIX <sys/types.h> typedef pid_t
POSIX <sys/types.h> typedef size_t
POSIX <sys/types.h> typedef ssize_t
POSIX <sys/types.h> typedef uid_t
POSIX <sys/utsname.h> function uname()
POSIX <sys/utsname.h> struct utsname
POSIX <sys/wait.h> function wait() <sys/types.h>
POSIX <sys/wait.h> function waitpid() <sys/types.h>
POSIX <sys/wait.h> macro WEXITSTATUS
POSIX <sys/wait.h> macro WIFEXITED
POSIX <sys/wait.h> macro WIFSIGNALED
POSIX <sys/wait.h> macro WIFSTOPPED
POSIX <sys/wait.h> macro WNOHANG
POSIX <sys/wait.h> macro WSTOPSIG
POSIX <sys/wait.h> macro WTERMSIG
POSIX <sys/wait.h> macro WUNTRACED
POSIX <termios.h> function cfgetispeed()
POSIX <termios.h> function cfgetospeed()
POSIX <termios.h> function cfsetispeed()
POSIX <termios.h> function cfsetospeed()
POSIX <termios.h> function tcdrain()
POSIX <termios.h> function tcflow()
POSIX <termios.h> function tcflush()
POSIX <termios.h> function tcgetattr()
POSIX <termios.h> function tcsendbreak()
POSIX <termios.h> function tcsetattr()
POSIX <termios.h> macro B0
POSIX <termios.h> macro B110
POSIX <termios.h> macro B1200
POSIX <termios.h> macro B134
POSIX <termios.h> macro B150
POSIX <termios.h> macro B1800
POSIX <termios.h> macro B19200
POSIX <termios.h> macro B200
POSIX <termios.h> macro B2400
POSIX <termios.h> macro B300
POSIX <termios.h> macro B38400
POSIX <termios.h> macro B4800
POSIX <termios.h> macro B50
POSIX <termios.h> macro B600
POSIX <termios.h> macro B75
POSIX <termios.h> macro B9600
POSIX <termios.h> macro BRKINT
POSIX <termios.h> macro CLOCAL
POSIX <termios.h> macro CREAD
POSIX <termios.h> macro CS5
POSIX <termios.h> macro CS6
POSIX <termios.h> macro CS7
POSIX <termios.h> macro CS8
POSIX <termios.h> macro CSIZE
POSIX <termios.h> macro CSTOPB
POSIX <termios.h> macro ECHO
POSIX <termios.h> macro ECHOE
POSIX <termios.h> macro ECHOK
POSIX <termios.h> macro ECHONL
POSIX <termios.h> macro HUPCL
POSIX <termios.h> macro ICANON
POSIX <termios.h> macro ICRNL
POSIX <termios.h> macro IEXTEN
POSIX <termios.h> macro IGNBRK
POSIX <termios.h> macro IGNCR
POSIX <termios.h> macro IGNPAR
POSIX <termios.h> macro INLCR
POSIX <termios.h> macro INPCK
POSIX <termios.h> macro ISIG
POSIX <termios.h> macro ISTRIP
POSIX <termios.h> macro IXOFF
POSIX <termios.h> macro IXON
POSIX <termios.h> macro NCCS
POSIX <termios.h> macro NOFLSH
POSIX <termios.h> macro OPOST
POSIX <termios.h> macro PARENB
POSIX <termios.h> macro PARMRK
POSIX <termios.h> macro PARODD
POSIX <termios.h> macro TCIFLUSH
POSIX <termios.h> macro TCIOFF
POSIX <termios.h> macro TCIOFLUSH
POSIX <termios.h> macro TCION
POSIX <termios.h> macro TCOFLUSH
POSIX <termios.h> macro TCOOFF
POSIX <termios.h> macro TCOON
POSIX <termios.h> macro TCSADRAIN
POSIX <termios.h> macro TCSAFLUSH
POSIX <termios.h> macro TCSANOW
POSIX <termios.h> macro TOSTOP
POSIX <termios.h> macro VEOF
POSIX <termios.h> macro VEOL
POSIX <termios.h> macro VERASE
POSIX <termios.h> macro VINTR
POSIX <termios.h> macro VKILL
POSIX <termios.h> macro VMIN
POSIX <termios.h> macro VQUIT
POSIX <termios.h> macro VSTART
POSIX <termios.h> macro VSTOP
POSIX <termios.h> macro VSUSP
POSIX <termios.h> macro VTIME
POSIX <termios.h> struct termios
POSIX <termios.h> typedef cc_t
POSIX <termios.h> typedef speed_t
POSIX <termios.h> typedef tcflag_t
ANSI <time.h> function asctime()
ANSI <time.h> function clock()
ANSI <time.h> function ctime()
ANSI <time.h> function difftime()
ANSI <time.h> function gmtime()
ANSI <time.h> function localtime()
ANSI <time.h> function mktime()
ANSI <time.h> function strftime()
ANSI <time.h> function time()
POSIX <time.h> function tzset()
ANSI <time.h> macro CLOCKS_PER_SEC
POSIX <time.h> macro CLOCK_TCK
ANSI <time.h> macro NULL
ANSI <time.h> struct tm
ANSI <time.h> typedef clock_t
ANSI <time.h> typedef size_t
ANSI <time.h> typedef time_t
ANSI <time.h> variable tzname
POSIX <unistd.h> function _exit()
POSIX <unistd.h> function access()
POSIX <unistd.h> function alarm()
POSIX <unistd.h> function chdir()
POSIX <unistd.h> function chown() <sys/types.h>
POSIX <unistd.h> function close()
POSIX <unistd.h> function ctermid() <stdio.h>
POSIX <unistd.h> function dup()
POSIX <unistd.h> function dup2()
POSIX <unistd.h> function execl()
POSIX <unistd.h> function execle()
POSIX <unistd.h> function execlp()
POSIX <unistd.h> function execv()
POSIX <unistd.h> function execve()
POSIX <unistd.h> function execvp()
POSIX <unistd.h> function fork() <sys/types.h>
POSIX <unistd.h> function fpathconf()
POSIX <unistd.h> function getcwd()
POSIX <unistd.h> function getegid() <sys/types.h>
POSIX <unistd.h> function geteuid() <sys/types.h>
POSIX <unistd.h> function getgid() <sys/types.h>
POSIX <unistd.h> function getgroups() <sys/types.h>
POSIX <unistd.h> function getlogin()
POSIX <unistd.h> function getpgrp() <sys/types.h>
POSIX <unistd.h> function getpid() <sys/types.h>
POSIX <unistd.h> function getppid() <sys/types.h>
POSIX <unistd.h> function getuid() <sys/types.h>
POSIX <unistd.h> function isatty()
POSIX <unistd.h> function link()
POSIX <unistd.h> function lseek() <sys/types.h>
POSIX <unistd.h> function pathconf()
POSIX <unistd.h> function pause()
POSIX <unistd.h> function pipe()
POSIX <unistd.h> function read()
POSIX <unistd.h> function rmdir()
POSIX <unistd.h> function setgid() <sys/types.h>
POSIX <unistd.h> function setpgid() <sys/types.h>
POSIX <unistd.h> function setsid() <sys/types.h>
POSIX <unistd.h> function setuid() <sys/types.h>
POSIX <unistd.h> function sleep()
POSIX <unistd.h> function sysconf()
POSIX <unistd.h> function tcgetpgrp() <sys/types.h>
POSIX <unistd.h> function tcsetpgrp() <sys/types.h>
POSIX <unistd.h> function ttyname()
POSIX <unistd.h> function unlink()
POSIX <unistd.h> function write()
POSIX <unistd.h> macro F_OK
POSIX <unistd.h> macro NULL
POSIX <unistd.h> macro R_OK
POSIX <unistd.h> macro SEEK_CUR
POSIX <unistd.h> macro SEEK_END
POSIX <unistd.h> macro SEEK_SET
POSIX <unistd.h> macro STDERR_FILENO
POSIX <unistd.h> macro STDIN_FILENO
POSIX <unistd.h> macro STDOUT_FILENO
POSIX <unistd.h> macro W_OK
POSIX <unistd.h> macro X_OK
POSIX <unistd.h> macro _PC_CHOWN_RESTRICTED
POSIX <unistd.h> macro _PC_LINK_MAX
POSIX <unistd.h> macro _PC_MAX_CANON
POSIX <unistd.h> macro _PC_MAX_INPUT
POSIX <unistd.h> macro _PC_NAME_MAX
POSIX <unistd.h> macro _PC_NO_TRUNC
POSIX <unistd.h> macro _PC_PATH_MAX
POSIX <unistd.h> macro _PC_PIPE_BUF
POSIX <unistd.h> macro _PC_VDISABLE
POSIX <unistd.h> macro _POSIX_CHOWN_RESTRICTED
POSIX <unistd.h> macro _POSIX_JOB_CONTROL
POSIX <unistd.h> macro _POSIX_NO_TRUNC
POSIX <unistd.h> macro _POSIX_SAVED_IDS
POSIX <unistd.h> macro _POSIX_VDISABLE
POSIX <unistd.h> macro _POSIX_VERSION
POSIX <unistd.h> macro _SC_ARG_MAX
POSIX <unistd.h> macro _SC_CHILD_MAX
POSIX <unistd.h> macro _SC_CLK_TCK
POSIX <unistd.h> macro _SC_JOB_CONTROL
POSIX <unistd.h> macro _SC_NGROUPS_MAX
POSIX <unistd.h> macro _SC_OPEN_MAX
POSIX <unistd.h> macro _SC_SAVED_IDS
POSIX <unistd.h> macro _SC_STREAM_MAX
POSIX <unistd.h> macro _SC_TZNAME_MAX
POSIX <unistd.h> macro _SC_VERSION
POSIX <unistd.h> typedef size_t
POSIX <unistd.h> typedef ssize_t
POSIX <utime.h> function utime() <sys/types.h>
POSIX <utime.h> struct utimbuf
--
De Mickey ddm26 at cas.org
More information about the reviews
mailing list