void Importieren::keyPressEvent(QKeyEvent *e) { switch ( e->key() ) { // Hinweis: die Rueckgabecodes der einzelnen Tasten findet man in der "qnamespace.h" case Qt::Key_Escape: emit abbruch(); break; } }
int aufruf(Kommando k, int forkexec) { /* Programmaufruf im aktuellen Prozess (forkexec==0) oder Subprozess (forkexec==1) */ if (forkexec) { int pid = fork(); int status; switch (pid) { case -1: perror("Fehler bei fork"); return (-1); case 0: if (umlenkungen(k)) exit(1); do_execvp(k->u.einfach.wortanzahl, k->u.einfach.worte); abbruch("interner Fehler 001"); break; /* sollte nie ausgeführt werden */ default: if(k->endeabwarten) { /* So einfach geht das hier nicht! */ waitpid(pid, &status, 0); if(WEXITSTATUS(status) != 0) { /* printf("Exit status: %d.\n", WEXITSTATUS(status)); */ return -1; } return 0; } return 0; } } /* nur exec, kein fork */ if (umlenkungen(k)) exit(1); do_execvp(k->u.einfach.wortanzahl, k->u.einfach.worte); abbruch("interner Fehler 001"); /* sollte nie ausgeführt werden */ exit(1); }