星期四, 9月 07, 2017

[C] 使用popen 而fgets()回傳null




一般使用popen去下command並且去讀回傳回來的值時,
會使用fgets來拿取資料,
但有時fgets拿回來時是null,
可是直接在linux下command時卻是有值,
這時要使用“2>&1”放在command後面,
強制印出訊息。


#define command "ls 2>&1"
#define MAX_BUFFER 256


char buffer[MAX_BUFFER];


sprintf(cmd, "%s", command);
FILE *fd = popen(cmd, "r");


while((fgets(buffer, MAX_BUFFER, fd)) != NULL) {
   print("%s\n", buffer);
}

沒有留言: