当前位置: 技术问答>linux和unix
execl的问题?帮看看哪里错了~
来源: 互联网 发布时间:2016-07-29
本文导语: 父进程: int value = 4; char *ptmp = NULL; ptmp = (char*)malloc(sizeof(int)); if(!fork()){ memcpy(ptmp,&value,sizeof(int)); execl("./handle","handle",ptmp,NULL); } 子进程: int main(int argc, char *argv[]) { int value; memcpy(&value,argv[1],sizeof(int)...
父进程:
子进程:
程序大体上是这个意思,可是子进程输出的是乱码,为什么不是我传入的4,问问怎么回事儿,谢谢~
Ps: 编译环境: gcc version 4.2.1 (SUSE Linux)
int value = 4;
char *ptmp = NULL;
ptmp = (char*)malloc(sizeof(int));
if(!fork()){
memcpy(ptmp,&value,sizeof(int));
execl("./handle","handle",ptmp,NULL);
}
子进程:
int main(int argc, char *argv[])
{
int value;
memcpy(&value,argv[1],sizeof(int));
printf("---------------value is: %d--------------n",value);
}
程序大体上是这个意思,可是子进程输出的是乱码,为什么不是我传入的4,问问怎么回事儿,谢谢~
Ps: 编译环境: gcc version 4.2.1 (SUSE Linux)
|
不好意思,lz我看错了
你的转换没有做好
子进程
你的转换没有做好
#include
#include
#include
#include
int main()
{
int value = 4;
char *ptmp = NULL;
ptmp = (char*)malloc(sizeof(int));
if(!fork()){
//memcpy(ptmp,&value,sizeof(int));
sprintf(ptmp,"%d",value);
execl("./handle","handle",ptmp,NULL);
}
return 0;
}
子进程
#include
#include
#include
int main(int argc, char *argv[])
{
int value;
//memcpy(&value,argv[1],sizeof(int));
value=atoi(argv[1]);
printf("---------------value is: %d--------------n",value);
}