diff options
author | Cyrill Gorcunov <gorcunov@openvz.org> | 2012-12-18 18:00:27 +0100 |
---|---|---|
committer | Michael Kerrisk <mtk.manpages@gmail.com> | 2012-12-22 08:05:15 +0100 |
commit | aab0b384fddfa15049f6696611b48347835f2ee9 (patch) | |
tree | dc0f165189c26e4e7696b4546dc7136804525ea7 | |
parent | b742d43e3d378c9ca122b7ab167efc236b8dff59 (diff) | |
download | man-pages-aab0b384fddfa15049f6696611b48347835f2ee9.tar.gz |
kcmp.2: New page for kcmp(2)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
-rw-r--r-- | man2/kcmp.2 | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/man2/kcmp.2 b/man2/kcmp.2 new file mode 100644 index 0000000000..5d2e9a3678 --- /dev/null +++ b/man2/kcmp.2 @@ -0,0 +1,113 @@ +.TH KCMP 2 2012-02-01 "Linux" "Linux Programmer's Manual" + +.SH NAME +kcmp \- compare if two processes do share a particular kernel resource + +.SH SYNOPSIS +.nf +.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" +.B #include <unistd.h> +.B #include <linux/kcmp.h> +.BR "#include <sys/syscall.h> " "/* For SYS_xxx definitions */" + +.BI "int syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2);" +.fi + +.SH DESCRIPTION + +.BR kcmp () +allows to find out if two processes identified by +.I pid1 +and +.I pid2 +share kernel resources such as virtual memory, file descriptors, file system etc. + +The comparison +.I type +is one of the following + +.BR KCMP_FILE +determines whether a file descriptor +.I idx1 +in the first process is the same as another descriptor +.I idx2 +in the second process + +.BR KCMP_VM +compares whether processes share address space + +.BR KCMP_FILES +compares the file descriptor arrays to see whether the processes share all files + +.BR KCMP_FS +compares whether processes share the file system information (the current umask, +working directory, namespace root, etc) + +.BR KCMP_SIGHAND +compares whether processes share a signal handlers table + +.BR KCMP_IO +compares whether processes do share I/O context, +used mainly for block I/O scheduling + +.BR KCMP_SYSVSEM +compares the list of undo operations associated with SYSV semaphores + +Note the +.BR kcmp () +is not protected against false positives which may have place if tasks are +running. +Which means one should stop tasks being inspected with this syscall to obtain +meaningful results. + +.SH "RETURN VALUE" +.B kcmp +was designed to return values suitable for sorting. +This is particularly handy when one have to compare +a large number of file descriptors. + +The return value is merely a result of simple arithmetic comparison +of kernel pointers (when kernel compares resources, it uses their +memory addresses). + +The easiest way to explain is to consider an example. +Lets say +.I v1 +and +.I v2 +are the addresses of appropriate resources, then the return value +is one of the following + +.B 0 +\- +.I v1 +is equal to +.IR v2 , +in other words we have a shared resource here + +.B 1 +\- +.I v1 +is less than +.I v2 + +.B 2 +\- +.I v1 +is greater than +.I v2 + +.B 3 +\- +.I v1 +is not equal to +.IR v2 , +but ordering information is unavailable. + +On error, \-1 is returned, and errno is set appropriately. + +.SH "CONFORMING TO" +.BR kcmp () +is Linux specific and should not be used in programs intended to be portable. +.SH "SEE ALSO" +.BR clone (2) |