Well, not exactly Unix. This is one of those sites the permalink's of which i might not care much. If you see this in webarchive, or if it is just cached in your browser or your brain, please note that this is probably still available under some other path.
signal function you can assign a handler function (or a constant saying that you
want to ignore or restore default behavior) to a signal. That function can do stuff like, sending that signal
to another process with
kill instead and leaving the receiving process intact.
kill function returns 0 on success, 1 on failure, and 64 if
you asked it to do a group of processes and for some it succeeded but for some
it did not.
strsignal returns strings such as
Interrupt for 2 (
I have not found a way to obtain the
SIGINT string, but that's probably not hard.
Email me if this here is still up and it says i have not found a way and you did, if you want to bother with being helpful.
get effective user ID of the user who owns the process of the program with
struct passwd * for a user ID by using
struct passwd * you can get
->pw_dir (home directory path)
you can also get
struct passwd * by username by using
you can get your current working directory using the function
don't use the deprecated
getwd, which does not allow to specify the size of your buffer,
and can cause error of writing beyond the end of your allocated buffer
there is also a GNU-specific
get_current_dir_name function, which will allocate the string for you,
note that you will have to
one neat trick is to just arithmetically negate the return value of
it can return only 0 or -1 anyway. Note: really, look at what the error was, see the
errno is a global variable that stores the error of last thing that failed that uses it.
<errno.h> you can find not only them by their names, but also
strerror which will give you a neat description string for an errno.
fork forks your program (process) into two processes. To one it
returns zero (the new one, the child), and to the other (the parent, the original one) it returns the new process ID of the child.
If there was an error, it returns -1, and you can see the error in errno.
waitpid will make your program process wait until the process that you called it about
will terminate. or, if you ask it to, also if it will stop. and if you ask, also if it gets continued.
default is just about termination. look up its manual for info about a bunch of macros
that will tell you what does the status value that
waitpid wrote for you really means,
WIFEXITED whether it exited normally,
WEXITSTATUS with what exit code;
WIFSIGNALED whether by unhandled signal,
WTERMSIG from what signal.
replace the current process image with new process image, like from an executable file.
execv take just the filename and the arguments list.
the ones ending with «e» also take a table of
KEY=value environment variable entries. but they are inherited besides that.
the ones with «p» differ from the ones without in that they will also, for relative filepaths,
look in all the directories specified in the