Pro*c中的system调用
有以下伪码,编译过后三个system调用的返回值居然不一样,请问
为什么啊,明明执行的是同一段代码。
int main()
{
char cmd[1024];
char usr[32],pwd[32];
int ret=0;
sprintf(cmd,"xx ;flg=$?;echo $flg;exit $flg");
ret =system(cmd);
printf("cmd1=[%s],ret=[%s]\n",ret);
EXEC SQL CONNECT :usr IDENTIFY BY :pwd
ret =system(cmd);
printf("cmd2=[%s],ret=[%s]\n",ret);
EXEC SQL COMMIT WORK RELEASE ;
ret =system(cmd);
printf("cmd3=[%s],ret=[%s]\n",ret);
return 0;
}