prctl的函数和pthread_self函数

1.prctl的函数原型如下:

复制代码
#include<sys/prctl.h>
​prctl(PR_SET_NAME, "process_name");

第一个参数是操作类型,指定PR_SET_NAME(对应数字15),即设置进程名;

第二个参数是进程名字符串,长度至多16字节。

复制代码
#include<stdio.h>
#include<pthread.h>
#include<sys/prctl.h>
  
void* test(void*arg)
{
    char name[32];
    prctl(PR_SET_NAME,(unsignedlong)"xx");
    prctl(PR_GET_NAME,(unsignedlong)name);
    printf("%s/n", name);
    while(1)
    sleep(1);
} 
 
int main(void)
{
    pthread_t tid;
    pthread_create(&tid,NULL,test,NULL);
    pthread_join(tid,NULL);
    return 0;
}

可以看到打印出的线程名字为xx,进程和线程的ID号不同。

====================================

2.pthread_self函数

pthread_self() 函数是 POSIX 线程库的一部分,它提供了一个非常简单的功能:获取当前线程的唯一标识符。这个标识符是 pthread_t 类型的,通常是一个无符号的长整型值,不过具体的类型是由实现定义的,这意味着它可以在不同的操作系统上有不同的表示。

这个标识符对于调试多线程程序非常有用,因为可以以此来区分哪个线程正在执行。此外,pthread_self() 在实现线程的同步操作时也很有用,例如,在一个线程中设置一个锁,并且只允许拥有这个锁的线程来释放它。

pthread_self() 函数的原型如下:

复制代码
#include <pthread.h>
pthread_t pthread_self(void);

在多线程程序中,每个线程都可以通过调用 pthread_self() 来获取自己的线程ID。线程ID可以用于比较操作,以判断两个线程ID是否相同。

相关推荐
Ivanqhz8 小时前
激活函数在 Transformer 中的作用及各种变体简述
java·linux·数据库·人工智能·深度学习
殷色玫瑰11 小时前
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
java·linux·c语言·c++
꯭自꯭闭꯭12 小时前
DM7主备升级方案
linux·服务器·数据库
用户41071920132512 小时前
VMware 虚拟机Ubuntu 环境linux远程连接失败
linux
lisanmengmeng12 小时前
Nagios邮件报警的配置
linux·运维·服务器
Ruiery13 小时前
Linux 6.6内核 CPU 深度解析(六):cpufreq
linux·运维·服务器
倔强的石头10613 小时前
【Linux指南】动静态库系列(十一):PLT 与延迟绑定:第一次调用动态库函数时发生了什么
linux·人工智能·python
硅基手札14 小时前
【linux内核专栏 08】时间与定时器
linux·运维·服务器
想做小南娘,发现自己是女生喵14 小时前
Linux之Ubuntu入门篇知识总结
linux·运维·服务器
CHEEVEN_QY15 小时前
搅拌摩擦焊FSW工艺参数对焊缝成形影响的实验研究10.1
linux·服务器·数据库