Esercizio 1 Prova Pratica 23-06-09

From Sistemi Operativi
Jump to navigation Jump to search
Scrivere un programma in linguaggio C denominato “scriptexec” che venga
richiamato con un solo parametro: il nome di un file che contiene un elenco di comandi con i rispettivi parametri, uno per
riga.
Le righe che iniziano per '#' sono commenti.
Il programma esegue uno dopo l'altro i comandi presenti nel file.
(E' 
vietato 
 l'uso di chiamate quali system o popen).

Soluzione di Dado e Pierg

#include <stdio.h>
#include <stdlib.h>
#include "s2argv/s2argv.h"

int main(int argc, char * argv[]){
    if(argc!=2){
        printf("Wrong parameters number\n");
    }else{
    	char *comm=NULL;
    	FILE *f;
    	ssize_t dim=0;
    	f=fopen(argv[1],"r");
    	if(f==NULL){
    		printf("Error while opening file %s\n",argv[1]);
    		exit(1);
    	}
        while(getline(&comm,&dim,f)>0){
		system_noshell(comm);
		/*preparo comandi successivi*/
    	        free(comm);
    	        comm=NULL;
        }
    }
}