+#: build/C/man3/pthread_setname_np.3:26
+#, no-wrap
+msgid "PTHREAD_SETNAME_NP"
+msgstr ""
+
+#. type: TH
+#: build/C/man3/pthread_setname_np.3:26
+#, no-wrap
+msgid "2013-02-04"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:29
+msgid "pthread_setname_np, pthread_getname_np - set/get the name of a thread"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:36
+#, no-wrap
+msgid ""
+"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
+"B<#include E<lt>pthread.hE<gt>>\n"
+"B<int pthread_setname_np(pthread_t *>I<thread>B<, const char "
+"*>I<name>B<);>\n"
+"B<int pthread_getname_np(pthread_t *>I<thread>B<,>\n"
+"B< const char *>I<name>B<, size_t >I<len>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:55
+msgid ""
+"By default, all the threads created using B<pthread_create>() inherit the "
+"program name. The B<pthread_setname_np>() function can be used to set a "
+"unique name for a thread, which can be useful for debugging multithreaded "
+"applications. The thread name is a meaningful C language string, whose "
+"length is restricted to 16 characters, including the terminating null byte. "
+"The I<thread> argument specifies the thread whose name is to be changed; "
+"I<name> specifies the new name."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:72
+msgid ""
+"The B<pthread_getname_np>() function can be used to retrieve the name of "
+"the thread. The I<thread> argument specifies the thread whose name is to be "
+"retrieved. The buffer I<name> is used to return the thread name; I<len> "
+"specifies the number of bytes available in I<name>. The buffer specified by "
+"I<name> should be at least 16 characters in length. The returned thread "
+"name in the output buffer will be null terminated."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:79
+msgid "The B<pthread_setname_np>() function can fail with the following error:"
+msgstr ""
+
+#. type: TP
+#: build/C/man3/pthread_setname_np.3:79 build/C/man3/pthread_setname_np.3:88
+#, no-wrap
+msgid "B<ERANGE>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:84
+msgid ""
+"The length of the string specified pointed to by I<name> exceeds the allowed "
+"limit."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:88
+msgid "The B<pthread_getname_np>() function can fail with the following error:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:95
+msgid ""
+"The buffer specified by I<name> and I<len> is too small to hold the thread "
+"name."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:100
+msgid ""
+"If either of these functions fails to open I</proc/self/task/[tid]/comm>, "
+"then the call may fail with one of the errors described in B<open>(2)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:102
+msgid "These functions first appeared in glibc in version 2.12."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:104
+msgid "These functions are nonstandard GNU extensions."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:112
+msgid ""
+"B<pthread_setname_np>() internally writes to the thread specific comm file "
+"under I</proc> filesystem: I</proc/self/task/[tid]/comm>. "
+"B<pthread_getname_np>() retrieves it from the same location."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:118
+msgid ""
+"The program below demonstrates the use of B<pthread_setname_np>() and "
+"B<pthread_getname_np>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:120
+msgid "The following shell session shows a sample run of the program:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:136
+#, no-wrap
+msgid ""
+"$B< ./a.out>\n"
+"Created a thread. Default name is: a.out\n"
+"The thread name after setting it is THREADFOO.\n"
+"B<^Z> # Suspend the program\n"
+"[1]+ Stopped ./a.out\n"
+"$ B<ps H -C a.out -o 'pid tid cmd comm'>\n"
+" PID TID CMD COMMAND\n"
+" 5990 5990 ./a.out a.out\n"
+" 5990 5991 ./a.out THREADFOO\n"
+"$ B<cat /proc/5990/task/5990/comm>\n"
+"a.out\n"
+"$ B<cat /proc/5990/task/5991/comm>\n"
+"THREADFOO\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:148
+#, no-wrap
+msgid ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>pthread.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>errno.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:150
+#, no-wrap
+msgid "#define NAMELEN 16\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:154
+#, no-wrap
+msgid ""
+"#define errExitEN(en, msg) \\e\n"
+" do { errno = en; perror(msg); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:161
+#, no-wrap
+msgid ""
+"static void *\n"
+"threadfunc(void *parm)\n"
+"{\n"
+" sleep(5); // allow main program to set the thread name\n"
+" return NULL;\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:168
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char **argv)\n"
+"{\n"
+" pthread_t thread;\n"
+" int rc;\n"
+" char thread_name[NAMELEN];\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:172
+#, no-wrap
+msgid ""
+" rc = pthread_create(&thread, NULL, threadfunc, NULL);\n"
+" if (rc != 0)\n"
+" errExitEN(rc, \"pthread_create\");\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:176
+#, no-wrap
+msgid ""
+" rc = pthread_getname_np(thread, thread_name, NAMELEN);\n"
+" if (rc != 0)\n"
+" errExitEN(rc, \"pthread_getname_np\");\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:181
+#, no-wrap
+msgid ""
+" printf(\"Created a thread. Default name is: %s\\en\", thread_name);\n"
+" rc = pthread_setname_np(thread, (argc E<gt> 1) ? argv[1] : "
+"\"THREADFOO\");\n"
+" if (rc != 0)\n"
+" errExitEN(rc, \"pthread_setname_np\");\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:183
+#, no-wrap
+msgid " sleep(2);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:189
+#, no-wrap
+msgid ""
+" rc = pthread_getname_np(thread, thread_name,\n"
+" (argc E<gt> 2) ? atoi(argv[1]) : NAMELEN);\n"
+" if (rc != 0)\n"
+" errExitEN(rc, \"pthread_getname_np\");\n"
+" printf(\"The thread name after setting it is %s.\\en\", thread_name);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:193
+#, no-wrap
+msgid ""
+" rc = pthread_join(thread, NULL);\n"
+" if (rc != 0)\n"
+" errExitEN(rc, \"pthread_join\");\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:197
+#, no-wrap
+msgid ""
+" printf(\"Done\\en\");\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/pthread_setname_np.3:204
+msgid "B<prctl>(2), B<pthread_create>(3), B<pthreads>(7)"
+msgstr ""
+
+#. type: TH
+#: build/C/man3/pthread_setschedparam.3:26