Exemplo n.º 1
0
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);
}