J'essaie d'écrire mon propre code pour le nombre de mots dans bash shell.
J'ai fait de façon habituelle. Mais je veux utiliser la sortie de pipe pour compter le mot. Par exemple, par exemple, la 1ère commande est cat et je redirige vers un fichier appelé med.
Maintenant je dois utiliser la fonction 'dup2' pour compter les mots dans ce fichier. Comment puis-je écrire le code pour mon wc?comment implémenter le compte de mots bash shell
C'est le code de ma coquille 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);
}
}
Et mon wordcount est:
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;
}
Je ne sais pas comment faire la redirection d'entrée je veux que mon code pour le faire: Quand je tape juste wordcount dans mon implémentation shell, je veux qu'il compte les mots dans le fichier med par défaut. Merci d'avance
Cela semble être des devoirs. Envisagez d'ajouter la balise "devoirs". –