- 论坛徽章:
- 0
|
回复 1楼 jizhifeng2004 的帖子
源程序如下:
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
main()
{
char buf[1024];
pid_t pid;
int status;
int i=1,ret;
memset(buf,0,sizeof(buf));
printf("%%");
while( fgets(buf,1024,stdin) != NULL )
{
buf[strlen(buf)-1]=0;
printf("i=[%d],buf=[%s]\n",i,buf);
if( pid = fork() < 0 )
printf("error...");
else if( pid == 0 )
{
printf("aaa pid=[%d]\n",pid);
execlp( buf, buf, (char *)0 ) ;
printf("OK!!!...ret=[%d]\n",buf,ret);
}
else if( pid > 0 )
{
printf("bbb pid=[%d]\n",pid);
}
printf("ccc pid=[%d]",pid);
printf("%%");
i++;
}
exit(0);
}
运行结果如下:
%date
i=[1],buf=[date] ......(1)
aaa pid=[0] ......(2)
aaa pid=[0] ......(3)
Sat Apr 22 09:23:21 BEIJING 2006 ......(4)
Sat Apr 22 09:23:21 BEIJING 2006 ......(5)
为什么(2)和(3) , 以及(4)和(5)???就是这个打印两行的问题!!不明白!谢谢指教! |
|