Ammazza quante risposte in un giorno
Scusate se io rispondo ora ma sono stato di esami.
Ringrazio per il codice in C++, però è inutile per i miei studi! Io conosco solo il C (anche se noto di riuscire a capirlo un pò).
Codice:
#include <stdlib.h>
#include <stdio.h>
int main() {
char *psz = NULL;
size_t cb;
do {
free(psz);
getline(&psz, &cb, stdin);
system(psz);
} while (strcmp(psz, "exit"));
return 0;
}
Ieri mi ero scritto il codice e l'avevo portato all'Uni per dargli un'occhiata nei momenti di noia. Io non comprendo perché deallocare la memoria di una variabile e subito dopo utilizzarla ella getline.
Se non ricordo male, free libera lo spazio di memoria occupato precedentemente dalla variabile psz. La successiva memorizzazione della getline in quella variabile dovrebbe giustamente fallire.
Quote:
Originariamente inviato da fero86
come sarebbe a dire, non mi dire che non hai mai fatto system("PAUSE") per evitare che la console del programma si chiuda subito
|
Si certo, ma su quella variabile non so che effetti dia
Quote:
Originariamente inviato da Teo@Unix
una shell in C (ottimo esercizio secondo me).
Si può fare in vari modi, potresti anche pensare ad un modello client-server... una shell remota insomma forse è ancora meglio come esercizio.
Dovresti darti un occhio al multiplexing in C. Nonchè alla programmazione di rete.
|
Certo, ma intanto volevo iniziare dal basso. Non ho ancora studiato le chiamate di sistema quindi attenderei per destreggiarmi tra evoluzioni di vario tipo. Grazie!
Ma quindi alla fine, nella sostanza, devo usare la fgets?!