12-04-2011
clone() returns a threadid, not a pid.
clone() also shares a lot common resources, if you have 2.6.34 kernel, CLONE_NEWPID
will result in a new process address space, but the return value is still thread id.
clone was invented to do threading. Use fork() if you want to create a real child process.
If you want threads use the the pthread library - pthread_create() and dozens of associated calls. Do not use clone() like that.
9 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
:cool:
I need to execute a shell script to do the following:
cat a file
run two back ground processes using the first two values from the file
wait till those background processes finish
run two more background processes using the next two values from the file
wait till those background... (1 Reply)
Discussion started by: halo98
1 Replies
2. UNIX for Dummies Questions & Answers
Hi everyone
I'm novice at Unix programming and I hope to post this thread in the correct place.
I have the following doubts:
1 Suppose we have some processes which are B's children process and another process A which has no relation with B and its children.
Can A do wait () for a... (5 Replies)
Discussion started by: Puntino
5 Replies
3. Shell Programming and Scripting
In one of the shell script (Where abinitio graph is called), the last line is wait ${!}. What does this wait ${!} mean ??? (2 Replies)
Discussion started by: risshanth
2 Replies
4. Shell Programming and Scripting
Did not use 'wait' yet.
How I understand by now the wait works only for child processes, started background.
Is there any other way to watch completion of any, not related process (at least, a process, owned by the same user?)
I need to start a background process, witch will be waiting... (2 Replies)
Discussion started by: alex_5161
2 Replies
5. Red Hat
Can someone explain what is the status says WAIT on performance monitoring
command.. (2 Replies)
Discussion started by: suresh_krish
2 Replies
6. Solaris
The Storage Admin presents a clone of a LUN, on the source side the device is under VxVM control, assuming that on the target side we have scanned the new cloned LUN at the OS level (solairs), from there on how do we initialize and mount the new volume.
Please give some guidence on this or a... (1 Reply)
Discussion started by: Tirmazi
1 Replies
7. Shell Programming and Scripting
Hi,
I am facing a strange issue,
when i call a script from my while loop in background it doesnt go in background, despite the wait i put below the whil loop it goes forward even before the process put in background is completed.
cat abc.txt | while read -u4 line
do
#if line contains #... (2 Replies)
Discussion started by: mihirvora16
2 Replies
8. UNIX for Dummies Questions & Answers
Hi,
I'm fairly new to the git command and I'm trying to figure out how to check if your local clone is up to date with the master. I know you can do the same thing on packages with apt-get by using update and then upgrade. Is there something similar with git? (0 Replies)
Discussion started by: silverdust
0 Replies
9. Programming
Waiting for more fun Ardunio parts from AliExpress, I decided to test two cheap Chinese Arduino UNO clones.
The Arduino UNO R3 (CH340G) MEGA328P
The Wavgat UNO R3 (CH340G) MEGA328P
Both of these Chinese Ardunio clones sell for about $3 USD, delivered to your door.
The bottom line is... (0 Replies)
Discussion started by: Neo
0 Replies
LEARN ABOUT MOJAVE
gettid
GETTID(2) Linux Programmer's Manual GETTID(2)
NAME
gettid - get thread identification
SYNOPSIS
#include <sys/types.h>
pid_t gettid(void);
Note: There is no glibc wrapper for this system call; see NOTES.
DESCRIPTION
gettid() returns the caller's thread ID (TID). In a single-threaded process, the thread ID is equal to the process ID (PID, as returned by
getpid(2)). In a multithreaded process, all threads have the same PID, but each one has a unique TID. For further details, see the dis-
cussion of CLONE_THREAD in clone(2).
RETURN VALUE
On success, returns the thread ID of the calling process.
ERRORS
This call is always successful.
VERSIONS
The gettid() system call first appeared on Linux in kernel 2.4.11.
CONFORMING TO
gettid() is Linux-specific and should not be used in programs that are intended to be portable.
NOTES
Glibc does not provide a wrapper for this system call; call it using syscall(2).
The thread ID returned by this call is not the same thing as a POSIX thread ID (i.e., the opaque value returned by pthread_self(3)).
In a new thread group created by a clone(2) call that does not specify the CLONE_THREAD flag (or, equivalently, a new process created by
fork(2)), the new process is a thread group leader, and its thread group ID (the value returned by getpid(2)) is the same as its thread ID
(the value returned by gettid()).
SEE ALSO
capget(2), clone(2), fcntl(2), fork(2), getpid(2), get_robust_list(2), ioprio_set(2), perf_event_open(2), sched_setaffinity(2), sched_set-
param(2), sched_setscheduler(2), tgkill(2), timer_create(2)
COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the
latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.
Linux 2017-09-15 GETTID(2)