我有一个结构定义为
struct xyz {
char *str;
int x;
int y;
};
我正在从其他一些程序 1 获取可执行文件的输入参数。(其他程序使用输入参数作为此结构执行 program2
的 execve
)。
我想知道,我可以将这个输入参数类型转换为 (struct xyz*)argv[1];
,还是必须在发送之前将其转换为字符串格式?
最佳答案
您不能以这种方式将任意数据传递给命令。您必须将其序列化为字符串,或执行一些 IPC(例如通过管道/套接字)。
这是因为字符串以 null 结尾。您的 char*
成员将在末尾有一个 \0
,即使没有,任何小于 16843009 (0x01010101
) 的 int将有一个空字节,无法正确复制。
关于c++ - 将 argv 类型转换为结构类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8047987/