Linux—用prctl()给线程命名
多线程编程时,如果没有设置每个线程的名字,默认的是进程的名字。为每个线程设置名字,比较好管理和调试;
对于多线程应用程序,如果能够给每个线程命名,那么调试起来的便利是不言而喻的。
1、函数原型
#include <sys/prctl.h> //头文件,Linux下调用int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5);
2、功能
prctl(PR_SET_NAME, “process_name”);
第一个参数是操作类型,指定PR_SET_NAME(对应数字15),即设置进程名;
第二个参数是进程名字符串,长度至多16字节。
3、函数调用测试用例
void setPthreadName(char *name)
{if(name != NULL){prctl(PR_SET_NAME, (unsigned long)*name); //name 最多16个字符}
}
4、实例
可以用prctl给进程内其它线程命名的接口,测试代码如下:
#include <stdio.h>
#include <pthread.h>
#include <sys/prctl.h>
#include <unistd.h>void* pFunc(void *arg)
{char name[32];prctl(PR_SET_NAME, (unsigned long)"xx");prctl(PR_GET_NAME, (unsigned long)name);printf("%s\n", name);while (1)sleep(1);
}int main(void)
{pthread_t tid;pthread_create(&tid, NULL, pFunc, NULL);pthread_join(tid, NULL);return 0;
}
参考:
http://www.kernel.org/doc/man-pages/online/pages/man2/prctl.2.html
http://www.cppblog.com/beautykingdom/archive/2009/11/08/100419.aspx
Linux—用prctl()给线程命名相关推荐
- 用prctl给线程命名
prctl Test name: prctl Syscall number: 172 Syscall name: prctl (man) File name: prctl.txt (122 ...
- 使用prctl为线程命名
使用prctl的PR_SET_NAME选项功能可以为线程命名,测试代码如下: #include <stdio.h> #include <pthread.h> #include ...
- prctl()函数给线程命名
今天看代码看到一个prctl()函数函数,百度了一下才知道是给线程命名(当然还有其他的功能).下面简述函数的用法: 1.包含的头文件为 sys/prctl.h; 2.函数用法:int 用法:prctl ...
- linux 编程--prctl()函数应用
int prctl ( int option,unsigned long arg2,unsigned long arg3,unsigned long arg4,unsigned long arg5 ) ...
- Linux下 prctl 进程控制
Linux 下 prctl 进程控制 Linux下可通过 prctl进行进程各种控制 #include <sys/prctl.h>int prctl(int option, unsigne ...
- linux的进程与线程通信方式,Linux的进程/线程间通信方式总结
Linux系统中的进程间通信方式主要以下几种: 同一主机上的进程通信方式 * UNIX进程间通信方式: 包括管道(PIPE), 有名管道(FIFO), 和信号(Signal) * System V进程 ...
- prctl()为线程指定名字
Llinu中使用prctl函数为线程指定名字 一.前言 有时候我们通过fork().pthread_create()创建出来的新任务其名字和创建任务的parent是一样的,如果有需要,该如何修 ...
- linux c prctl 进程相关 调用指令 简介
函数申明 int prctl ( int option,unsigned long arg2,unsigned long arg3,unsigned long arg4,unsigned long a ...
- Windows和Linux下通用的线程接口
对于多线程开发,Linux下有pthread线程库,使用起来比较方便,而Windows没有,对于涉及到多线程的跨平台代码开发,会带来不便.这里参考网络上的一些文章,整理了在Windows和Linux下 ...
最新文章
- Js面试题(一)--js实现数组去重怎么实现?
- Python情感分析:鹿晗的粉丝们究竟原谅他了吗?
- JetsonXavier/Tx2性能测试比对
- Android SlidingMenu以及ActionBarSherlock的基础使用教程
- 2020年女人体重表,看看你是不是标准的模特体重
- 3.IDA-数据显示窗口(导出窗口、导入窗口、String窗口、...窗口)
- flask项目开发中,遇到http 413错误
- html是以一种通用的方法来,c++ 有一种通用的方法来使函数模板适应为多态函数对象吗?...
- 【Boost】Boost使用几条简单笔记
- Java 8 为什么要使用Lambda表达式
- 电商运营、美工必备导航类网站,有效提高工作效率
- 基于QItemDelegate的例子1 SpinBoxDelegate
- 马斯克再次创造历史!三位太空游客坐五手火箭成功升空,今晚达到空间站,票价3.5亿...
- 杨辉三角c语言 用队列形式,C语言杨辉三角(循环队列).doc
- C++setw函数的运用
- 逻辑结构定义及其分类
- 软件配置管理中基线(baseline)
- PyG搭建GCN实现链接预测
- 微信机器人网页版接口详解
- 鼠标上下滑轮时,来回乱跑的骚操作