Пример #1
0
int piping(char *cmd,int pipeCount){
	int processCount = pipeCount+1;
	char *process[processCount];
	for(int i=0;i<processCount;i++){
		process[i] = (char *)malloc(sizeof(char) * MAXPIPECOMMANDSIZE);
	}
	int dummy;
	lineToWords(cmd,process,&dummy,'|');
	for(int i=0;i<processCount;i++){
		// printf("\nPROCESS[%d] = {%s}",i,process[i]);
	}
	printf("\n");
	for(int i=0;i<processCount;i++){
		if(process[i][0] == '\0'){
			printf("\nERROR in %d th command !!",i+1);
			return -1;
		}
	}
	/************** main piping code *******************/
	runPipe(process,processCount);
	/***************************************************/
	for(int i=0;i<processCount;i++){
		free(process[i]);
	}
	printf("\n");
	return 0;
}
Пример #2
0
int main(int argc,char **argv){
    FILE *debug = fopen("debug.txt","w");
    fclose(debug);
    int pCount = argc-1;
    // printf("\npCount = %d",pCount);
    char *cmd[pCount];
    for(int i=0;i<pCount;i++){
        cmd[i] = (char *)malloc(sizeof(char)*100);
        strcpy(cmd[i],argv[i+1]);
        printf("\nCMD[%d] = {%s}",i,cmd[i]);
    }

    runPipe(cmd,pCount);

    printf("\nIN MAIN\n");

    return 0;
}
Пример #3
0
////===========================================================================================
int main() {
    /* installation du handler pour le signal child_signal */
    struct sigaction sig;
    sig.sa_flags = 0;
    sig.sa_handler = child_signal;
    sigemptyset(&sig.sa_mask);
    sigaction(child_signal,&sig,NULL);

    /* désactivation l'interruption par Contrôle+C */
    sig.sa_handler = SIG_IGN;
    sigaction(SIGINT, &sig, NULL);

    initialize_readline ();
    using_history ();

    printf("Lecture de fichier d'histoire : (%s)\n",strerror(read_history (history_filename)));

    while (!Exit) {
        init();
        prompt();
        next=0;
        lire();
        decoupe_ligne_seq();
        int i=0;
        for (;i<numcmd_seq;i++) {
            char *line;
            char* elem[MAXELEMS];
            //strcpy(&line,cmds_seq[i]);
            decoupe_ligne_pipe(cmds_seq[i]);
            if (piped) {
                runPipe();
            } else {
                decoupe_cmd(cmds_seq[i],elem);
                if (redirected) {
                    runRedirectedCommand(elem,red_file,red_type);
                } else {
                    execute(elem);
                }
            }
        }
    }
    printf("Sauvegarde de fichier d'histoire : (%s)\n",strerror(write_history(history_filename)));
    return 0;
}