知識社群登入
位置: 艾鍗學院 Blog > 專業論壇 > 討論
[嵌入式Linux實作問題] fgets
1樓
以下是我寫的一段程式,但系統跑到這會顯示Unexpected close,不知哪裡出了問題

fp = popen("iwlist ra0 scan |sed 's/ //g'","r");

while(fgets(test,sizeof(test),fp) != NULL)
{
if((cnt = strstr(test,"key:on")) != NULL)
{
ptr[counter].AuthMode = WiFi_AuthMode_OPEN;
ptr[counter].EncrypType = WiFi_EncrypType_WEP;
counter++;
}
else if((cnt = strstr(test,"key:off")) != NULL)
{
ptr[counter].AuthMode = WiFi_AuthMode_OPEN;
ptr[counter].EncrypType = WiFi_EncrypType_NONE;
counter++;
}
}

pclose(fp);
2樓
這個程式 'iwlist ra0 scan |sed 's/ //g'  也許導致關了pipe.

  你可以先用strace 去debug , 就知道問題在那了
   
  或用 pipe(2) 自己控制 pipe 開關