Sto lavorando a un incarico per la classe, in cuidobbiamo costruire una semplice interfaccia shell per un sistema Unix in C. Sto usando Ubuntu e quando eseguo il codice sorgente che è stato fornito usando questo comando:
osh> cat shell.c
Ottengo un errore:
*** omake error: File /home/cameron/cs426/Project1/shell.c: line 11, characters 20-24
unexpected token: string: {
Questa è la mia prima volta che utilizzo osh, quindi qualcuno ha qualche idea su quale potrebbe essere il problema?
Inoltre, ecco il codice, per ogni evenienza.
#include<stdio.h>
#include<unistd.h>
#define MAX_LINE 80 /* 80 chars per line, per command */
int main(void)
{
char *args[MAX_LINE/2 + 1]; /* command line (of 80) has max of 40 arguments */
int should_run = 1;
while(should_run){
printf("osh>");
fflush(stdout);
/**
* After reading user input, the steps are:
* (1) fork a child process
* (2) the child process will invoke execvp()
* (3) if command included &, parent will invoke wait()
*/
}
return 0;
}
risposte:
2 per risposta № 1Sembra che questo codice fosse destinato a essere una shell. Quello che devi fare è:
- Apri un terminale che esegue una shell reale.
osh
è il omake shell, e probabilmente non è rilevante per questo compito. Il codice che hai dato stampe "osh", ma non lo è il osh. - Compilare con
gcc -o shell-that-calls-itself-osh shell.c
Il-o
la bandiera dicegcc
dove mettere il file binario compilato. - Corri con
./shell-that-calls-itself-osh
Il./
è quello di eseguire il codice nella directory corrente.