403
07-08-2006, 14:11
Hallo :D
Da ich die entsprechende GPG API noch nicht gefunden habe, möchte ich ein
Program in einem Subprozess eine Signatur mit GPG verifizieren lassen.
Das klappt folgendermassen gut:
sleep (1);
pid_t pid;
if ((pid = fork()) < 0) {
perror("fork");
exit(1);
}
if (pid == 0) {
buf = strcat(argv[1],ext); /* ext=.sig */
fprintf(stdout, "buf: %s\n", buf);
fprintf(stdout, "checking Signature for: %s\n", buf);
sleep (1); execl("/usr/local/bin/gpg", "--verify", "blumen.task.sig", NULL); /* make dynamic */
fflush(stdout);
_exit(0);
}
}
Der Versuch, das ganze dynamisch zu machen, scheitert dagegen:
execl("/usr/local/bin/gpg", "--verify", " %s", buf); /* make dynamic */
Woran könnte das liegen? Meine Vermutung, das argv[1] nicht an den
Subprozess weitergegeben wird, ist falsch.
Da ich die entsprechende GPG API noch nicht gefunden habe, möchte ich ein
Program in einem Subprozess eine Signatur mit GPG verifizieren lassen.
Das klappt folgendermassen gut:
sleep (1);
pid_t pid;
if ((pid = fork()) < 0) {
perror("fork");
exit(1);
}
if (pid == 0) {
buf = strcat(argv[1],ext); /* ext=.sig */
fprintf(stdout, "buf: %s\n", buf);
fprintf(stdout, "checking Signature for: %s\n", buf);
sleep (1); execl("/usr/local/bin/gpg", "--verify", "blumen.task.sig", NULL); /* make dynamic */
fflush(stdout);
_exit(0);
}
}
Der Versuch, das ganze dynamisch zu machen, scheitert dagegen:
execl("/usr/local/bin/gpg", "--verify", " %s", buf); /* make dynamic */
Woran könnte das liegen? Meine Vermutung, das argv[1] nicht an den
Subprozess weitergegeben wird, ist falsch.