linux popen 獲取 ip test ok

任務:unix,linux經過c程序獲取本機IP.linux

1. 標準I/O庫函數相對於系統調用的函數多了個緩衝區(,buf),安全性上經過buf 防溢出。安全

2.printf 這類輸出函數中「 」若包含「記得要換成轉義字符\" 函數

 

[objc] view plain copy print?spa

  1. #include<stdio.h>.net

  2. #define sizeofbuf 512    unix

  3. int main(int argc,char **argv)blog

  4. {ip

  5.         char    buf[sizeofbuf];get

  6.         FILE    *fp;it

  7.         char     ch;

  8.  

  9.         snprintf(buf,sizeof(buf),"ifconfig |grep -v 127.0.0.1|grep 'inet addr'|awk '{print $2}'|cut -d \":\" -f2");

  10.         fp = popen(buf,"r");

  11.         if( NULL == fp)

  12.         {

  13.                  printf("error");

  14.                  return -1;

  15.         }

  16.         printf("var ip = \"");

  17.         while( EOF != (ch=fgetc(fp)) )

  18.         {

  19.                 if (ch == '\n')

  20.                         ch = '\0'; //去除換行符

  21.                 else{

  22.                         fputc(ch,stdout);

  23.                 }

  24.         }

  25.         printf("\"\n");

  26.         pclose(fp);//close piping 

  27.         return 0;

  28. }

  29. ~           

   編譯後運行成功獲取本機IP    

相關文章
相關標籤/搜索