2009年1月15日 星期四

管線 simple code

#include stdio.h
#include stdlib.h
#include unistd.h
#include string.h

int main()
{
FILE *read_fp;
char *buffer=malloc(sizeof(char)*10240);
memset(buffer,'\0',10240);

read_fp = popen("ps -ax","r");
if(read_fp != 0)
{
fread(buffer,sizeof(char),10240,read_fp);
}
printf("%s", buffer);
pclose(read_fp);
free(buffer);
}

宣告char *buffer;
系統會創造一個指標,指向任意的記憶體位址,但不會宣告大小,
如果不malloc(sizeof(char)*10240),會造成segmentation fault.

沒有留言: