我需要将一个对象从子进程传递到其父进程,但是当给定的对象由模板对象组成时则不需要。
我成功地通过调用write()C函数成功地将简单的类传递给了父进程,该函数通过套接字向父进程提供对象的地址,但是是当我的对象由模板组成的时候对象 (std :: vector,std :: pair ...) Valgrind正在发出有关未初始化字节的警告,并且父进程收到了损坏的对象。 / p>
Valgrind输出:
==18624== Syscall param write(buf) points to uninitialised byte(s)
==18624== at 0x4E4B29D: ??? (syscall-template.S:84)
编辑: 正如@Sandro所建议的那样,我决定使用POD对象而不是任何库来序列化我的复杂数据(std :: vector)。