我想在bash shell中编写我自己的字数统计代码。
我做了平常的方法。但是我想用管道的输出来统计这个词。
因此,例如第一个命令是猫,我正在重定向到一个名为med的文件。
现在我必须使用'dup2'函数来计算该文件中的单词。我怎样才能为我的wc编写代码?如何实现字数bash shell
这是我的外壳PGM代码:
void process(char* cmd[], int arg_count)
{
pid_t pid;
pid = fork();
char path[81];
getcwd(path,81);
strcat(path,"/");
strcat(path,cmd[0]);
if(pid < 0)
{
cout << "Fork Failed" << endl;
exit(-1);
}
else if(pid == 0)
{
int fd;
fd =open("med", O_RDONLY);
dup2(fd ,0);
execvp(path, cmd);
}
else
{
wait(NULL);
}
}
我的单词计数是:
int main(int argc, char *argv[])
{
char ch;
int count = 0;
ifstream infile(argv[1]);
while(!infile.eof())
{
infile.get(ch);
if(ch == ' ')
{
count++;
}
}
return 0;
}
我不知道该怎么做输入重定向 我希望我的代码来做到这一点: 当我只在我的shell实现中输入wordcount时,我希望它在默认情况下计算med文件中的单词。 在此先感谢
这听起来像是家庭作业。考虑添加“家庭作业”标签。 – 2010-04-16 17:14:26