| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1256 人关注过本帖
标题:有些代码看不懂
取消只看楼主 加入收藏
米兰的大铁匠
Rank: 2
来 自:天外
等 级:论坛游民
帖 子:61
专家分:84
注 册:2013-7-16
结帖率:83.33%
收藏
已结贴  问题点数:30 回复次数:3 
有些代码看不懂
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>

#define oops(m) do{perror(m); exit(1);}while(0)

int main()
{
char buf[32];
int pid = 0;
int num = 0;
int i = 0;
int flag = 0;
char * p = NULL;

while (1)
{
flag = 0;
i = 0;
num = 0;

printf("Please input a cmd: ");
fgets(buf, 32, stdin);

if (strncmp(buf, "end", 3) == 0)
break;

p = strstr(buf, "\n");
if (p != NULL)
*p = '\0';

while (buf[i] != '\0')
{
if (buf[i] == ' ' && buf[i+1] != ' ')
{
num++;//这里不懂
flag = 1;//还有这里,所谓的标记,是什么意思
}
else
flag = 0;//???

i++;
}

char* argv[num+2];// 为什么又是+2
argv[num+1] = NULL;

p = buf;
for (i = 0; i < num+1; i++)
{
argv[i] = p;
p = strstr(p, " ");

if (p == NULL)
break;

while (*p == ' ' && *(p+1) == ' ')
{   
*p = '\0';
p++;
}   
*p = '\0';
p++;
}

pid = fork();
if (pid == -1)
{
oops("fork");
}
else if (pid == 0)
{
execvp(argv[0], argv);
perror("execvp");
}

wait(NULL);
}


return 0;
}


其他的都还懂
搜索更多相关主题的帖子: include 
2013-09-26 21:34
米兰的大铁匠
Rank: 2
来 自:天外
等 级:论坛游民
帖 子:61
专家分:84
注 册:2013-7-16
收藏
得分:0 
求高手指教,注释部分不懂,其它的都还好
2013-09-26 21:39
米兰的大铁匠
Rank: 2
来 自:天外
等 级:论坛游民
帖 子:61
专家分:84
注 册:2013-7-16
收藏
得分:0 
以下是引用303770957在2013-9-26 21:57:12的发言:

把看懂得理解到位就很好了!
问题是那些不懂的,使得整个代码不连贯
2013-09-26 22:24
米兰的大铁匠
Rank: 2
来 自:天外
等 级:论坛游民
帖 子:61
专家分:84
注 册:2013-7-16
收藏
得分:0 
这几天都搞的忘记了
2013-09-29 21:25
快速回复:有些代码看不懂
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018405 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved