Я пытаюсь использовать pthreads для создания двух новых процессов, каждый из которых использует файловый дескриптор для чтения или записи из канала.Процессы pthreads не отображаются в выводах ps
У меня есть основная функция, которая развивает себя и выполняет создатель pthread, используя execl()
. Оттуда я запускаю pthreads для создания двух процессов, каждый из которых получает другой конец трубы. Затем я жду окончания потоков, а затем продолжаю делать другие вещи.
Вот мой код:
int createThreads(int fds[])
{
int retcd = OK; /* return code */
pthread_t talk1, talk2;
int ret1, ret2;
// Create both talk agent processes
ret1 = pthread_create(&talk1, NULL, talk, &fds[0]); // read
ret2 = pthread_create(&talk2, NULL, talk, &fds[1]); // write
// Wait for both processes to finish at the same time
pthread_join(talk1, NULL);
pthread_join(talk2, NULL);
return(retcd);
}
Функция разговора принимает дескриптор файла и делает некоторые вещи с ним. Проблема в том, что, когда я запускаю ps -f u [username]
, я не вижу, как возникают два процесса pthreads. Что-то не так с синтаксисом?
[man ps] (http://unixhelp.ed.ac.uk/CGI/man-cgi?ps) –