我的问题是我需要运行一个 pthread 以便我可以听一个管道,问题是我有一个结构中的管道:
struct Pipefd {
int tuberia1[2];
int tuberia2[2];
};
这是我创建 pthread 的方式:
intptr_t prueba = pf.tuberia2[0];
pthread_create(NULL,NULL, listenProcess,reinterpret_cast<void*>(prueba));
这是我调用的方法:
void *listenProcess(void* x){
int a = reinterpret_cast<intptr_t>(x);
close(0);
dup(a);
string word;
while(getline(cin,word)){
cout << "Termino y llego: " << word << endl;
}
}
它编译,但我得到一个分段错误,但我不明白。我是 C++ 的新手,我已经搜索了很多但没有找到工作的答案,“reinterpret_cast”是我发现编译它没有错误的一种解决方法。
感谢您的宝贵时间,对不起我的英语,它不是我的母语,所以您指出的任何语法错误,都很好。