Hi all:    I'm using gpg 1.4.10.    Now I want to 
operate it in my program, and I want to get the output info of gpg from popen, 
in order that I can process them. Codes like the 
following:----------------------------------------------------------------#include
 <stdio.h>#include <sys/wait.h>#include <string.h>#include 
<stdlib.h>int main(void){    FILE *fpout = popen("gpg 
--verify yrp.sig yrp", "r");    char 
buf[1024];    bzero(buf, 1024);    int len = 
fread(buf, 1024, 1, fpout);    printf("The return of fread = %d, 
The length of the buf = %d\n", len, strlen(buf));    
printf("%s\n", buf);    pclose(fpout);    exit 
(0);}----------------------------------------------------------------The result 
didn't appear normal:gpg: Signature made Mon 04 Jul 2016 06:14:44 PM CST using 
RSA key ID 5FEC9A32gpg: Good signature from "yuriping (3) 
<[email protected]>"The return of fread = 0, The length of the buf = 0But 
when I popen "ls" as following, 
----------------------------------------------------------------#include 
<stdio.h>#include <sys/wait.h>#include <string.h>#include 
<stdlib.h>int main(void){    FILE *fpout = popen("ls", 
"r");    char buf[1024];    bzero(buf, 
1024);    int len = fread(buf, 1024, 1, 
fpout);    printf("The return of fread = %d, The length of the 
buf = %d\n", len, strlen(buf));    printf("%s\n", 
buf);    pclose(fpout);    exit 
(0);}----------------------------------------------------------------It worked 
properly:The return of fread = 0, The length of the buf = 
60popen_lspopen_ls.csignsign.cverifyverify.cyrpyrp.sigIt seems that the output 
of gpg does not be redirected to the popen command buffer, it still output to 
the stdout.I want to know what causes the difference, and how to fix it. By the 
way, this issue appears when "popen("gpg --detach-sign yrp", "w")"Best Regards!



------------------------------------------
搜狐邮箱积分商城积分大派兑,来晚就没了~
_______________________________________________
Gnupg-users mailing list
[email protected]
http://lists.gnupg.org/mailman/listinfo/gnupg-users

Reply via email to