很简单——你不能,但你可以自己写,或者你可以找到为你完成一切的库。
1) boost::asio (c++) 有序列化例子
2) telnet 协议的 libcli (c) ( https://github.com/dparrish/libcli )
3)libtpl(c)序列化(http://troydhanson.github.io/tpl/)
还有很多...
原始描述符示例(使用 libtpl 打包 argv):
自行连接和创建 serverFd
tpl_node *tn;
char* bufferArgv;
/** @todo pass array or string? */
tn = tpl_map("iA(s)", &argc, &bufferArgv);
tpl_pack(tn, 0);
char** _argv;
for (_argv = argv; *_argv != 0; _argv++)
{
bufferArgv = *_argv;
tpl_pack(tn, 1);
}
tpl_dump(tn, TPL_FD, serverFd);
tpl_free(tn);
打开包装
tpl_node *tn;
char* bufferArgv;
int argc;
tn = tpl_map("iA(s)", &argc, &bufferArgv);
tpl_load(tn, TPL_FD, serverFd);
tpl_unpack(tn, 0);
如果您足够勇敢,请更换 tpl_dump 和 tpl_load 并发送原始 tn.data