Re: Bug#28702: pthread_setname_np(3) missing man page

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Chandan,

On Thu, Jan 3, 2013 at 10:27 AM, Chandan Apsangi <chandan.jc@xxxxxxxxx> wrote:
> Hi Michael,
>
> I have modified the man page for pthread_setname/getname according to
> the comments you gave the last time. Sending the updated copy again.
> Please review and let me know if it's fine.

I've merged your pages, made a few small fixes, added a few extra
details. The results can be seen in git.

Thanks for submitting this page!

Cheers,

Michael


>
>
> .\" Copyright (C) 2012 Chandan Apsangi <chandan.jc@xxxxxxxxx>
> .\"
> .\" Permission is granted to make and distribute verbatim copies of this
> .\" manual provided the copyright notice and this permission notice are
> .\" preserved on all copies.
> .\"
> .\" Permission is granted to copy and distribute modified versions of this
> .\" manual under the conditions for verbatim copying, provided that the
> .\" entire resulting derived work is distributed under the terms of a
> .\" permission notice identical to this one.
> .\"
> .\" Since the Linux kernel and libraries are constantly changing, this
> .\" manual page may be incorrect or out-of-date.  The author(s) assume no
> .\" responsibility for errors or omissions, or for damages resulting from
> .\" the use of the information contained herein.  The author(s) may not
> .\" have taken the same level of care in the production of this manual,
> .\" which is licensed free of charge, as they might when working
> .\" professionally.
> .\"
> .\" Formatted or processed versions of this manual, if unaccompanied by
> .\" the source, must acknowledge the copyright and authors of this work.
> .\"
> .TH PTHREAD_SETNAME_NP 3 2012-10-24 "Linux" "Linux Programmer's Manual"
> .SH NAME
> pthread_setname_np, pthread_getname_np \- set/get the name of a thread
> .SH SYNOPSIS
> .nf
> .BR "#define _GNU_SOURCE" "             /* See feature_test_macros(7) */"
> .B #include <pthread.h>
> .BI "int pthread_setname_np(pthread_t *" thread ", const char *" name ");
> .BI "int pthread_getname_np(pthread_t *" thread ", const char *" name
> ", size_t" len);
> .fi
> .sp
> Compile and link with \fI\-pthread\fP.
> .SH DESCRIPTION
> By default, all the threads created using
> .BR pthread_create (3)
> inherit the program name.
> Using
> .BR pthread_setname_np (3),
> users can specify a unique name for a thread,
> which can be particularly useful for debugging complicated
> multi-threaded applications.
> The thread name is a meaningful C language string, whose length is
> restricted to 16 characters.
> Anything greater than this would lead to an error.
>
> The
> .BR pthread_getname_np (3)
> can be used to retrieve the name of the thread.
> The buffer specified by name must be at least 16 characters in length.
> The returned thread name in the output buffer will be null terminated.
> .SH RETURN VALUE
> On success, these functions return 0;
> on error, they return a nonzero error number.
> .SH ERRORS
> If the functions fail to open /proc/self/task/<TID>/comm, then the
> call may fail with one of
> the errors described in
> .BR open (2).
> .TP
> .B ERANGE
> The length of the string specified as second argument exceeds the allowed limit.
>
> .SH NOTES
> .BR pthread_setname_np (3)
> internally writes to the thread specific comm file under
> .IR /proc
> filesystem:
> .IR /proc/self/task/<tid>/comm.
> .BR pthread_getname_np (3)
> retreives it from the same location.
>
> .SH EXAMPLE
> .PP
> The program below demonstrates the use of
> .BR pthread_setname_np (),
> as well as
> .BR pthread_getname_np ().
>
> The following shell session shows a sample run of the program:
> .in +4n
> .nf
>
> .RB "$" " ./a.out 1 2 4 7 14"
> Created a thread. Default name is: a.out
> The thread name after setting it is THREADFOO.
> Done
> .fi
> .in
>
> .SS Program source
> \&
> .nf
> #define _GNU_SOURCE
>
> #include <pthread.h>
> #include <stdio.h>
> #include <string.h>
> #include <unistd.h>
> #include <errno.h>
> #include <stdlib.h>
>
> #define NAMELEN 16
>
> #define errExitEN(en, msg) \\
>         do { if(en) { errno = en; perror(msg); \\
>                 exit(EXIT_FAILURE);} \\
>         } while (0)
>
> static void *threadfunc(void *parm)
> {
>     sleep(5);                   // allow main program to set the thread name
>     return NULL;
> }
>
> int main(int argc, char **argv)
> {
>     pthread_t thread;
>     int rc;
>     char thread_name[NAMELEN];
>
>     rc = pthread_create(&thread, NULL, threadfunc, NULL);
>     errExitEN(rc, "pthread_create");
>     rc = pthread_getname_np(thread, thread_name, NAMELEN);
>     errExitEN(rc, "pthread_getname_np");
>     printf("Created a thread. Default name is: %s\\n", thread_name);
>     rc = pthread_setname_np(thread, "THREADFOO");
>     errExitEN(rc, "pthread_setname_np");
>     sleep(2);
>     rc = pthread_getname_np(thread, thread_name, NAMELEN);
>     errExitEN(rc, "pthread_getname_np");
>     printf("The thread name after setting it is %s.\\n", thread_name);
>     rc = pthread_join(thread, NULL);
>     errExitEN(rc, "pthread_join");
>     printf("Done\\n");
>     exit(EXIT_SUCCESS);
> }
> .fi
> .SH SEE ALSO
> .ad l
> .nh
> .BR prctl (2),
> .BR pthread_create (3),
> .BR pthreads (7)
>
> Thanks,
> Chandan



-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Author of "The Linux Programming Interface"; http://man7.org/tlpi/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux