我做了strace(1)
一个pthread_create(3)
。它间接调用clone(2)
系统调用。
它将在那里设置以下标志:(我使用的是 i386 GNU/Linux (Mint 13))
CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_THREAD | CLONE_SYSVSEM | CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID
我对所有这些标志都很满意。但我的问题是为什么要pthread_create()
设置CLONE_CHILD_CLEARTID
标志?据我所知CLONE_CHILD_SETTID
,将在子内存中的位置 ctid 设置子线程 id,并CLONE_CHILD_CLEARTID
在子退出时将其擦除。
(因为没有CLONE_CHILD_SETTID
设置标志,那为什么CLONE_CHILD_CLEARTID
?)
真的需要吗?pthread_create()
当我们想要实现using的功能时,我们应该设置哪些理想的标志clone(2)
?
该领域的初学者。