Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!cornell!uw-beaver!ssc-vax!uvicctr!tholm
From: tholm@uvicctr.UUCP (Terrence W. Holm)
Newsgroups: comp.os.minix
Subject: /usr/man/cat2/*
Message-ID: <447@uvicctr.UUCP>
Date: 7 Jul 88 23:55:22 GMT
Reply-To: tholm@uvicctr.UUCP (Terrence W. Holm)
Organization: University of Victoria, Victoria B.C. Canada
Lines: 1226

EFTH Minix report #25  - July 1988 -  /usr/man/cat2/*


Our section 2 "man" pages are included. Please enjoy.

Also, please report mistakes.


--------------------------------------------------------------------
echo x - _exit.2
gres '^X' '' > _exit.2 << '/'
XSYSTEM CALLS
X    _exit(2)		- terminate this process
X
XINVOCATION
X    _exit( code )
X      int code;
X
XEXPLANATION
X    _exit(2) closes all open descriptors.  Any children
X    are inherited by "init".  The process terminates.
X    Files opened using the stdio library are not flushed.
X
X    This call is generally not used directly by a user's
X    program, exit(3) is the preferred interface.
X
XRESULTS
X    The parent may receive the lower byte of  by
X    using wait(2).
X
XREFERENCES
X    wait(2), exit(3)
X
XPROBLEMS
X    POSIX states that _exit(2) and exit(3) should perform
X    the same operation.
/
echo x - access.2
gres '^X' '' > access.2 << '/'
XSYSTEM CALLS
X    access(2)		- do I have access to a file
X
XINVOCATION
X    #include 
X
X    int access( file_name, type )
X      char *file_name;
X      int   type;
X
XEXPLANATION
X    Access(2) determines if the  is accessible
X    according to the real user and group id's of the current
X    process. The  of access required is specified by
X    OR'ing R_OK, W_OK and X_OK which corresponds to the "rwx"
X    protection bits. If  is F_OK, then access(2) only
X    checks for the existence of the file.
X
XRESULTS
X     0 : File is accessible according to .
X    -1 : File is not accessible.
/
echo x - alarm.2
gres '^X' '' > alarm.2 << '/'
XSYSTEM CALLS
X    alarm(2)		- send me a timeout signal in a while
X
XINVOCATION
X    unsigned alarm( secs )
X      unsigned secs;
X
XEXPLANATION
X    After  seconds, the caller will be interrupted with
X    the signal SIGALRM. If  is zero, then the alarm is
X    turned off.
X
XRESULTS
X    Returns the time that was left if the alarm was currently
X    running.
X
XREFERENCES
X    signal(2), sleep(3)
/
echo x - brk.2
gres '^X' '' > brk.2 << '/'
XSYSTEM CALLS
X    brk(2)		- set the data space size
X
XEXPLANATION
X    Brk(2) and sbrk() are used to change the size of
X    the area used for data allocation. These are never
X    to be used directly by a user's program.
X
XREFERENCES
X    malloc(3)
/
echo x - chdir.2
gres '^X' '' > chdir.2 << '/'
XSYSTEM CALLS
X    chdir(2)		- change directory
X
XINVOCATION
X    chdir( dir_name )
X      char *dir_name;
X
XEXPLANATION
X    The working directory is set to .
X
XRESULTS
X     0 : Ok.
X    -1 : Error.
/
echo x - chmod.2
gres '^X' '' > chmod.2 << '/'
XSYSTEM CALLS
X    chmod(2)		- set the protection for a file
X
XINVOCATION
X    #include 
X    #include 
X
X    chmod( file_name, perm )
X      char *file_name;
X      int   perm;
X
XEXPLANATION
X    Chmod(2) sets the protection for . The caller must
X    either be the owner of the file, or the super-user.
X
X     represents the bits "ug-rwxrwxrwx", where "u" is the
X    "set UID bit", "g" is the "set GID bit", and the rest are
X    three sets of READ/WRITE/EXECUTE permissions for the USER,
X    GROUP and OTHERS respectively.
X
XRESULTS
X     0 : Ok.
X    -1 : Error.
/
echo x - chown.2
gres '^X' '' > chown.2 << '/'
XSYSTEM CALLS
X    chown(2)		- set the owner for a file
X
XINVOCATION
X    chown( file_name, owner, group )
X      char *file_name;
X      int   owner;
X      int   group;
X
XEXPLANATION
X    Chown(2) sets the  and  for a file.
X    Only the super-user may use this call.
X
XRESULTS
X     0 : Ok.
X    -1 : Error.
/
echo x - chroot.2
gres '^X' '' > chroot.2 << '/'
XSYSTEM CALLS
X    chroot(2)		- change the root directory
X
XINVOCATION
X    chroot( dir_name )
X      char *dir_name;
X
XEXPLANATION
X    The root directory ("/") is set to . Only
X    the super-user may change the root directory.
X
XRESULTS
X     0 : Ok.
X    -1 : Error.
/
echo x - close.2
gres '^X' '' > close.2 << '/'
XSYSTEM CALLS
X    close(2)		- deallocate a descriptor
X
XINVOCATION
X    close( desc )
X      int desc;
X
XEXPLANATION
X    Deallocates the file descriptor .
X
XRESULTS
X     0 : Ok.
X    -1 : Error.
X
XREFERENCES
X    open(2), fclose(3)
/
echo x - creat.2
gres '^X' '' > creat.2 << '/'
XSYSTEM CALLS
X    creat(2)		- create a file
X
XINVOCATION
X    #include 
X    #include 
X
X    int creat( file_name, perm )
X      char *file_name;
X      int   perm;
X
XEXPLANATION
X    If  does not exist, then it is created with
X    the permissions . If  exists, then
X    it is truncated.
X
XRESULTS
X    >=0 : The descriptor for writing on the file.
X     -1 : Error.
X
XREFERENCES
X    chmod(2), open(2), umask(2), fopen(3)
/
echo x - dup.2
gres '^X' '' > dup.2 << '/'
XSYSTEM CALLS
X    dup(2)		- make another descriptor
X
XINVOCATION
X    int dup( desc )
X      int  desc;
X
XEXPLANATION
X    The descriptor  is duplicated.
X
XRESULTS
X    >=0 : The new descriptor.
X     -1 : Error.
X
XREFERENCES
X    close(2), dup2(2), open(2)
/
echo x - dup2.2
gres '^X' '' > dup2.2 << '/'
XSYSTEM CALLS
X    dup2(2)		- make another descriptor
X
XINVOCATION
X    dup2( desc, new )
X      int  desc;
X      int  new;
X
XEXPLANATION
X    The descriptor  is duplicated as descriptor .
X    A close(2) is performed on  if it was in use.
X
XRESULTS
X    >=0 : The new descriptor.
X     -1 : Error.
X
XREFERENCES
X    close(2), dup(2), open(2)
/
echo x - execve.2
gres '^X' '' > execve.2 << '/'
XSYSTEM CALLS
X    execve(2)     	- load a process image from a file
X
XINVOCATION
X    execve( name, argv, envp )
X      char *name;
X      char *argv[];
X      char *envp[];
X
XEXPLANATION
X     is the path name of the file which contains the process
X    image.  points to a vector of pointers to strings which
X    are to be passed as arguments, the first argument is generally
X    the same the last component in .  points to the
X    environment, see environ(4).
X
X    The new process begins with the following, where  is the
X    number of arguments in . The global variable  is
X    the same as .
X
X        main( argc, argv, envp )
X          int  argc;
X          char **argv
X	  char **envp;
X
XRESULTS
X    o/w : Will not return.
X     -1 : Error.
X
XREFERENCES
X    fork(2), execl(3), environ(4)
/
echo x - fork.2
gres '^X' '' > fork.2 << '/'
XSYSTEM CALLS
X    fork(2)		- split into two processes
X
XINVOCATION
X    int fork()
X
XEXPLANATION
X    A child process is created. This new process is a copy
X    of the parent, including descriptors.
X
XRESULTS
X    o/w : Process number of child, you are the parent.
X      0 : You are the child.
X     -1 : Could not fork.
X
XEXAMPLE
X    int pid = fork();
X
X    if ( pid == -1 )
X        return;
X
X    if ( pid == 0 )  {  /*  The child process  */
X        execl( "/bin/sh", "/bin/sh", 0 );
X        perror( "/bin/sh" );
X        exit( 127 );
X    }
X
X    /*  The parent process: ignore signals, wait for sub-process  */
X
X    signal( SIGINT,  SIG_IGN );
X    signal( SIGQUIT, SIG_IGN );
X
X    {
X    int  w, status;
X
X    while ( (w=wait(&status)) != pid  &&  w != -1 );
X    }
X
XREFERENCES
X    execl(3), wait(2)
/
echo x - fstat.2
gres '^X' '' > fstat.2 << '/'
XSYSTEM CALLS
X    fstat(2)		- read an inode
X
XINVOCATION
X    #include 
X    #include 
X
X    fstat( desc, s )
X      int  desc;
X      struct stat *s;
X
XEXPLANATION
X    Fstat(2) reads the inode for the file descriptor .
X    See stat(2) for a description of the structure pointed to
X    by .
X
XRESULTS
X     0 : Ok.
X    -1 : Error.
X
XREFERENCES
X    stat(2)
/
echo x - getegid.2
gres '^X' '' > getegid.2 << '/'
XSYSTEM CALLS
X    getegid(2)		- what is my effective group id
X
XINVOCATION
X    int getegid()
X
XRESULTS
X    My effective group id.
X
XREFERENCES
X    getgid(2)
/
echo x - geteuid.2
gres '^X' '' > geteuid.2 << '/'
XSYSTEM CALLS
X    geteuid(2)		- what is my effective user id
X
XINVOCATION
X    int geteuid()
X
XRESULTS
X    My effective user id.
X
XREFERENCES
X    getuid(2)
/
echo x - getgid.2
gres '^X' '' > getgid.2 << '/'
XSYSTEM CALLS
X    getgid(2)		- what is my real group id
X
XINVOCATION
X    int getgid()
X
XRESULTS
X    My real group id.
X
XREFERENCES
X    getegid(2)
/
echo x - getpgrp.2
gres '^X' '' > getpgrp.2 << '/'
XSYSTEM CALLS
X    getpgrp(2)     	- who is my process group leader
X
XINVOCATION
X    int getpgrp()
X
XRESULTS
X    My process group id.
X
XREFERENCES
X    setpgrp(2), kill(2)
/
echo x - getpid.2
gres '^X' '' > getpid.2 << '/'
XSYSTEM CALLS
X    getpid(2)		- what is my process id
X
XINVOCATION
X    int getpid()
X
XRESULTS
X    My process id.
/
echo x - getppid.2
gres '^X' '' > getppid.2 << '/'
XSYSTEM CALLS
X    getppid(2)     	- what is my parent's process id
X
XINVOCATION
X    int getppid()
X
XRESULTS
X    My parent's process id.
/
echo x - getuid.2
gres '^X' '' > getuid.2 << '/'
XSYSTEM CALLS
X    getuid(2)		- what is my real user id
X
XINVOCATION
X    int getuid()
X
XRESULTS
X    My real user id.
X
XREFERENCES
X    geteuid(2)
/
echo x - intro.2
gres '^X' '' > intro.2 << '/'
XSYSTEM CALLS
X    intro(2)		- available system calls
X
XEXPLANATION
X    There are 48 functions callable by C programs which send
X    direct requests to the MINIX operating system. These
X    "system calls" are placed in a separate section of the
X    manual to aid students in understanding how MINIX and
X    its libraries operate, (there is also a historical
X    precedent for the separation).
X
X    The following system calls are part of the POSIX standard:
X
X	access	alarm	chdir	chmod	chown	close	creat
X	dup	dup2	execve	_exit	fork	fstat	getegid
X	geteuid	getgid	getpgrp	getpid	getppid	getuid	isatty
X	kill	link	lseek	open	pause	pipe	read
X	setgid	setpgrp	setuid	signal	stat	time	times
X	umask	unlink	utime	wait	write
X
X    The following MINIX system calls are not in the IEEE Std
X    1003.1 Trial-Use Standard:
X
X	brk	chroot	ioctl	mknod	mount	stime	sync
X	umount
X
XREFERENCES
X    intro(3), errno(4)
/
echo x - ioctl.2
gres '^X' '' > ioctl.2 << '/'
XSYSTEM CALLS
X    ioctl(2)		- special functions for devices
X
XINVOCATION
X    #include 
X
X    ioctl( desc, TIOCSETP, argp )
X      int desc;
X      struct sgttyb *argp;
X
X    ioctl( desc, TIOCSETC, argc )
X      int desc;
X      struct tchars *argc;
X
X    ioctl( desc, TIOCGETP, argp )
X
X    ioctl( desc, TIOCGETC, argc )
X
XEXPLANATION
X    Devices are generally accessed through read(2) and write(2)
X    entry points, ioctl(2) adds an entry point for special
X    functions. The first parameter is a file descriptor,
X    the second is the name of the special function and the
X    last parameter is an appropriate argument for the given
X    function.
X
X    Currently there are four different ioctl(2) calls, all for
X    terminal devices. TIOCSETP and TIOCSETC set some parameters.
X    TIOCGETP and TIOCGETC recall the current parameters. The
X    structures pointed to by the last argument contain the following
X    elements, the initial defaults are also shown:
X
X	(char)  argp->sg_ispeed	 baud rate of rs232 port (1200)
X	(char)  argp->sg_erase	 erase the previous character (^H)
X	(char)  argp->sg_kill	 erase the whole line (@)
X	(short) argp->sg_flags	 see below:
X
X		BITS5	     5 bits of data
X		BITS6	     6 bits of data
X		BITS7	     7 bits of data
X		BITS8	     8 bits of data
X     		EVENP        Even parity generation and checking
X     		ODDP         Odd parity generation and checking
X		XTABS	     expand tabs (^I) to spaces
X		CRMOD	     i/p: ^M becomes ^J, o/p: ^J becomes ^M/^J
X		ECHO	     echo input characters
X		RAW	     enable raw mode, no i/o processing
X		CBREAK	     enable cbreak mode, as opposed to line mode
X
X		console initially: XTABS | CRMOD | ECHO
X		rs232 initially:   BITS7 | EVENP | XTABS | CRMOD
X		stty(1) default:   BITS8 | XTABS | CRMOD | ECHO
X
X	(char)  argc->t_intrc	 generates SIGINT (^?)
X	(char)  argc->t_quitc	 generates SIGQUIT (^\)
X	(char)  argc->t_startc	 restart output (^Q)
X	(char)  argc->t_stopc	 stop output (^S)
X	(char)  argc->t_eofc	 generate end-of-file (^D)
X
XNOTES
X    The following constants are defined in sgtty.h for baud rates:
X
X	     	B110    	 110 baud, 2 stop bits (if BITS5 then 1.5)
X     		B300    	 300 baud, 1 stop bit
X     		B1200		1200 baud, 1 stop bit
X     		B2400		2400 baud, 1 stop bit
X     		B4800		4800 baud, 1 stop bit
X     		B9600		9600 baud, 1 stop bit
X
X    When changing the number of data bits, all other data bit flags
X    must be turned off, for example:
X
X	argp->sg_flags &= ~ ( BITS5 | BITS6 | BITS7 | BITS8 );
X	argp->sg_flags |= BITS7;
X
X    If neither EVENP nor ODDP is set then no parity generation or
X    checking are performed.
X
XRESULTS
X     0 : Ok.
X    -1 : Error.
X
XEXAMPLE
X    ioctl( 0, TIOCGETP, &tty_mode );
X
X    /*  No tab expansion, no echo, cbreak mode  */
X
X    tty_mode.sg_flags = tty_mode.sg_flags & ~XTABS & ~ECHO  |  CBREAK;
X
X    ioctl( 0, TIOCSETP, &tty_mode  );
X
XREFERENCES
X    stty(1), gtty(3), stty(3)
X
XPROBLEMS
X    TIOCGETP does not return a value for sg_ispeed.
/
echo x - isatty.2
gres '^X' '' > isatty.2 << '/'
XSYSTEM CALLS
X    isatty(2)     	- does this descriptor refer to a terminal
X
XINVOCATION
X    int isatty( desc )
X      int desc;
X
XRESULTS
X    1 :  is an open descriptor connected to a terminal.
X    0 :  is not associated with a terminal.
X
XREFERENCES
X    fstat(2), ttyname(3)
/
echo x - kill.2
gres '^X' '' > kill.2 << '/'
XSYSTEM CALLS
X    kill(2)		- signal a process
X
XINVOCATION
X    kill( pid, sig )
X      int  pid;
X      int  sig;
X
XEXPLANATION
X    The signal  is sent to the process . The sender
X    must either have the same user id, or be the super-user. If
X     is 0, then everyone in the same process group is
X    signaled.
X
X    If  is -1 and the caller is the super-user then all
X    processes receive the signal.
X
XRESULTS
X     0 : Ok.
X    -1 : Error.
X
XREFERENCES
X    alarm(2), setpgrp(2), signal(2)
X
XPROBLEMS
X    Does not handle sig = 0 or pid < 0 variations as defined
X    in POSIX.
/
echo x - link.2
gres '^X' '' > link.2 << '/'
XSYSTEM CALLS
X    link(2)		- link a file
X
XINVOCATION
X    link( file_name, new_name )
X      char *file_name;
X      char *new_name;
X
XEXPLANATION
X    A new file  is created as a link to the existing
X    file . Both must be on the same file system.
X
XRESULTS
X     0 : Ok.
X    -1 : Error.
/
echo x - lseek.2
gres '^X' '' > lseek.2 << '/'
XSYSTEM CALLS
X    lseek(2)		- seek to a new place in a file
X
XINVOCATION
X    #include 
X    #include 
X
X    off_t lseek( desc, address, from )
X      int   desc;
X      off_t address;
X      int   from;
X
XEXPLANATION
X    The current read/write pointer for the file descriptor 
X    is set to 
offset by a location as determined by the X value of : X X SEEK_SET from the beginning of the file X SEEK_CUR from the current position X SEEK_END from the end of the file X XRESULTS X o/w : Current octet position in file. X -1 : Error. / echo x - mknod.2 gres '^X' '' > mknod.2 << '/' XSYSTEM CALLS X mknod(2) - make a file node X XINVOCATION X #include X #include X X mknod( file_name, mode, device ) X char *file_name; X int mode; X int device; X XEXPLANATION X Mknod(2) creates an inode for with the given . X For special files (block or character) the major/minor device is X specified by . Only the super-user may use this call. X XRESULTS X 0 : Ok. X -1 : Error. X XREFERENCES X /usr/include/sys/types.h X /usr/include/stat.h / echo x - mount.2 gres '^X' '' > mount.2 << '/' XSYSTEM CALLS X mount(2) - mount a new file system X XINVOCATION X mount( special, file_name, read_only ) X char *special; X char *file_name; X int read_only; X XEXPLANATION X The block special file is mounted with its root X as . If is non-zero then this new X file system will be read only. Only the super-user may use X mount(2). X XRESULTS X 0 : Ok. X -1 : Error. X XREFERENCES X umount(2) / echo x - open.2 gres '^X' '' > open.2 << '/' XSYSTEM CALLS X open(2) - open a file descriptor X XINVOCATION X #include X X int open( file_name, flag ) X char *file_name; X int flag; X XEXPLANATION X is opened as specified by : X X O_RDONLY for reading X O_WRONLY for writing X O_RDWR for both reading and writing X X The file must exist. X XRESULTS X >=0 : The descriptor for the file. X -1 : Error. X XREFERENCES X close(2), creat(2), lseek(2), read(2), write(2), fopen(3) / echo x - pause.2 gres '^X' '' > pause.2 << '/' XSYSTEM CALLS X pause(2) - wait for a signal X XINVOCATION X pause() X XEXPLANATION X Waits for a signal, and returns after completion of the X signal handler. X XRESULTS X -1 : Ok. X XREFERENCES X signal(2), wait(2) / echo x - pipe.2 gres '^X' '' > pipe.2 << '/' XSYSTEM CALLS X pipe(2) - create a pipe X XINVOCATION X pipe( desc ) X int desc[2]; X XEXPLANATION X A FIFO pipe is created. Desc[1] is for writing to the X pipe and desc[0] is for reading from the pipe. X XRESULTS X 0 : Ok. X -1 : Error. / echo x - read.2 gres '^X' '' > read.2 << '/' XSYSTEM CALLS X read(2) - read from a file X XINVOCATION X int read( desc, buffer, size ) X int desc; X char *buffer; X int size; X XEXPLANATION X Up to bytes are read from the file referenced by X the file descriptor . The data is placed into the X storage pointed to by . X XRESULTS X o/w : Number of bytes actually read. X 0 : At the end of the file. X -1 : Error. / echo x - setgid.2 gres '^X' '' > setgid.2 << '/' XSYSTEM CALLS X setgid(2) - change my group id X XINVOCATION X setgid( group ) X int group; X XEXPLANATION X The real and effective group id are set to . X Setgid(2) requires that either the caller's real group X id is or the caller is the super-user. X XRESULTS X 0 : Ok. X -1 : Error. X XREFERENCES X getgid(2) / echo x - setpgrp.2 gres '^X' '' > setpgrp.2 << '/' XSYSTEM CALLS X setpgrp(2) - make me a process group leader X XINVOCATION X int setpgrp() X XEXPLANATION X Each child of "init" is a process group leader. The X offsprings of this leader belong to the same process X group. Setpgrp(2) can be used to break off a new X group from this tree. X X Kill(2) is able to send a signal to all members of X a process group. This is used by the terminal devices X to broadcast a SIGINT or SIGQUIT signal. X XRESULTS X My process group id (which is now my process id). X XREFERENCES X getpgrp(2), kill(2) / echo x - setuid.2 gres '^X' '' > setuid.2 << '/' XSYSTEM CALLS X setuid(2) - change my user id X XINVOCATION X setuid( user ) X int user; X XEXPLANATION X The real and effective user id are set to . X Setuid(2) requires that either the caller's real user X id is or the caller is the super-user. X XRESULTS X 0 : Ok. X -1 : Error. X XREFERENCES X getuid(2) / echo x - signal.2 gres '^X' '' > signal.2 << '/' XSYSTEM CALLS X signal(2) - what should be done with signals X XINVOCATION X #include X X void (*signal( sig, handler ))() X int sig; X void (*handler)(); X XEXPLANATION X Signal(2) specifies what the system should do if the signal X is sent to this process. There are 16 signals defined X in MINIX, though not all of them are used. X X When a signal arrives it may either be ignored, cause the X process to terminate or cause an asynchronous call to a X handler procedure within the process. When this handler X procedure terminates, control resumes where it was before X the signal. X X The default for all signals is to terminate the process. X Signals marked with a "*" in the list below also create a X core image file when the process is terminated. X X Each process may specify that a signal should be ignored, X should be set to the default state or cause a call to a X handler procedure. must be one of the following: X X SIG_IGN ignore the signal X SIG_DFL use the default behavior for the signal X a procedure call this handler when the signal occurs X X The following are the signals defined in signal.h: X X SIGHUP 1 hang-up X SIGINT 2 interrupt X SIGQUIT 3* quit X SIGILL 4* illegal instruction X SIGTRAP 5* trace trap X SIGIOT 6* IOT trap X SIGEMT 7* EMT trap X SIGFPE 8* arithmetic exception X SIGKILL 9 kill (cannot be caught or ignored) X SIGBUS 10* bus error X SIGSEGV 11* segmentation violation X SIGSYS 12* bad argument to system call X SIGPIPE 13 write on a pipe with no one to read it X SIGALRM 14 alarm clock X SIGTERM 15 software termination signal X XRESULTS X o/w : Last setting for signal. X -1 : Error. X XEXAMPLE X #include X X terminate() { X printf( "\nBye\n" ); X exit( 1 ); X } X X main() { X if ( signal( SIGINT, SIG_IGN ) != SIG_IGN ) X signal( SIGINT, terminate ); X X while( 1 ); X } X XREFERENCES X kill(2) / echo x - stat.2 gres '^X' '' > stat.2 << '/' XSYSTEM CALLS X stat(2) - read an inode X XINVOCATION X #include X #include X X stat( file_name, s ) X char *file_name; X struct stat *s; X XEXPLANATION X Stat(2) reads the inode for the file . points X to a structure containing the following: X X (dev_t) s->st_dev device file is on X (ino_t) s->st_ino inode number X (unsigned short) s->st_mode protection X (short int) s->st_nlink number of links X (unsigned short) s->st_uid owner's user id X (unsigned short) s->st_gid owner's group id X (dev_t) s->st_rdev device type, if is device X (off_t) s->st_size file size X (time_t) s->st_atime time of last modification X (time_t) s->st_mtime time of last modification X (time_t) s->st_ctime time of last modification X X (s->st_mode & S_IFMT) is one of the following: X X S_IFREG regular X S_IFDIR directory X S_IFCHR character special X S_IFBLK block special X X The following may be set in s->st_mode: X X S_ISUID set user id on execution X S_ISGID set group id on execution X X The lower 9 bits of s->st_mode are the three sets of "rwx" X permissions for the USER, GROUP and OTHERS respectively. X XRESULTS X 0 : Ok. X -1 : Error. X XREFERENCES X chmod(2), chown(2), fstat(2), utime(2) / echo x - stime.2 gres '^X' '' > stime.2 << '/' XSYSTEM CALLS X stime(2) - set the system clock X XINVOCATION X #include X X stime( new_time ) X time_t *new_time; X XEXPLANATION X The system clock is set to the value pointed to by . X Only the super-user may set the clock. X XRESULTS X 0 : Ok. X -1 : Error. / echo x - sync.2 gres '^X' '' > sync.2 << '/' XSYSTEM CALLS X sync(2) - copy file system buffers to disk X XINVOCATION X sync() X XEXPLANATION X All the file buffers are copied from the volatile RAM X to disk. / echo x - time.2 gres '^X' '' > time.2 << '/' XSYSTEM CALLS X time(2) - what time is it X XINVOCATION X #include X X time_t time( secs_spot ) X time_t *secs_spot; X XEXPLANATION X Time is kept as a count of the number of seconds since X January 1st, 1970. X XRESULTS X The seconds count is returned. If is not NULL, X then the seconds count is also placed into the location X pointed to by . X XREFERENCES X ctime(3) / echo x - times.2 gres '^X' '' > times.2 << '/' XSYSTEM CALLS X times(2) - how much CPU time have I used X XINVOCATION X #include X #include X X times( buf ) X struct tms *buf; X XEXPLANATION X The CPU times used by the current process and its X children is returned. The accounting is separated X into system and user time. The counts are 1/60 of X a second. points to the following structure: X X struct tms { X time_t tms_utime; my user time X time_t tms_stime; my system time X time_t tms_cutime; children's user time X time_t tms_cstime; children's system time X }; X XRESULTS X 0 : Ok. X XPROBLEMS X In the POSIX standard times(2) returns an elapsed X time count. / echo x - umask.2 gres '^X' '' > umask.2 << '/' XSYSTEM CALLS X umask(2) - set the default file protection mask X XINVOCATION X int umask( new_mask ) X int new_mask; X XEXPLANATION X Whenever a file is created its protection mask is AND'ed with X the complement of the lower 9 bits of . X XRESULTS X The previous mask contents. X XREFERENCES X chmod(2), creat(2) / echo x - umount.2 gres '^X' '' > umount.2 << '/' XSYSTEM CALLS X umount(2) - unmount a file system X XINVOCATION X umount( special ) X char *special; X XEXPLANATION X The block special file is unmounted. Only the X super-user may use umount(2). X XRESULTS X 0 : Ok. X -1 : Error. X XREFERENCES X mount(2) / echo x - unlink.2 gres '^X' '' > unlink.2 << '/' XSYSTEM CALLS X unlink(2) - delete a link to a file X XINVOCATION X unlink( file_name ) X char *file_name; X XEXPLANATION X The file link is deleted. If this was the last X link to a file, and the file is not open, then the file will X be removed. X XRESULTS X 0 : Ok. X -1 : Error. / echo x - utime.2 gres '^X' '' > utime.2 << '/' XSYSTEM CALLS X utime(2) - change a file's last modified time X XINVOCATION X #include X #include X X utime( file_name, times ) X char *file_name; X struct utimbuf *times; X XEXPLANATION X The file's "last modified" time is set by: X X (time_t) times->modtime X X Only the owner of a file or the super-user may change this X file update time. If is NULL, then the "last modified" X time is set to the current time. X X There is no "last accessed" time in the MINIX file system. X XRESULTS X 0 : Ok. X -1 : Error. / echo x - wait.2 gres '^X' '' > wait.2 << '/' XSYSTEM CALLS X wait(2) - wait for a child to terminate X XINVOCATION X int wait( status ) X int *status; X XEXPLANATION X Wait(2) returns if a child has already terminated, or if X there are no children. Otherwise wait(2) blocks until a X child does terminate. X X If wait(2) returns because a child terminated, and X is not NULL, then the lowest byte of the location pointed to X by will contain the signal number which terminated X the child, 0 for normal termination. On a normal termination X the next higher byte receives the value from the child's X exit(3) call. If a core dump was generated then 0x80 is OR'ed X into the status. X XRESULTS X o/w : Process number of terminated child. X -1 : errno = ECHILD - No children. X = EINTR - A signal occurred. X XREFERENCES X _exit(2), pause(2), exit(3) / echo x - write.2 gres '^X' '' > write.2 << '/' XSYSTEM CALLS X write(2) - write to a file X XINVOCATION X int write( desc, buffer, size ) X int desc; X char *buffer; X int size; X XEXPLANATION X bytes from the storage pointed to by X are written to the file referenced by the descriptor X . X XRESULTS X o/w : Number of bytes actually written. X -1 : Error. / -------------------------------------------------------------------- Edwin L. Froese uw-beaver!ubc-cs!mprg!handel!froese Terrence W. Holm uw-beaver!ubc-cs!uvicctr!sirius!tholm