所以我有一个带有指向Object的成员指针的类,该成员函数使用系统调用来写入文件描述符。 我想用线程扩展它,所以我可以同时写两个文件描述符(它们不在光盘上)。 当两个线程使用相同对象的写入功能时,这甚至可能吗?
int main()
{
Writer oWr;
myClass omyClass(&oWr);
unsigned char data[10] ={0} ;
int fd1 = open(...);
int fd2 = open(...);
omyClass.write(fd1, data, 10);
//Create 2 threads using omyClass but with fd1 and fd2
}
class myClass
{
myClass::myClass( Writer *pWr) : pWriter(pWr)
{}
void write(int fd, void* data, int size)
{
pWriter->writeraw(fd, data, size);
}
private:
Writer *pWriter;
};
class Writer
{
int writeraw(int fd, void* data, int size)
{
int ret = write(fd, data, size);
return ret;
}
};
答案 0 :(得分:0)
当文件描述符传递给write函数时,这里没有问题。