FILE
* popen (
const
char
* command ,
const
char
* type );
int
pclose (
FILE
* stream );
long long len;
char *tok;
char buf[512];
FILE *p = popen("df -h", "r");
while(fgets(buf, sizeof(buf)-1, p) != NULL)
{
printf("%s\n", buf);
}
tok = strtok(buf, " ");
tok = strtok(NULL, " ");
len = atoll(tok);
printf("%lld\n", len);
tok = strtok(NULL, " ");
len = atoll(tok);
printf("%lld\n", len);
pclose(p);
---------------------------------------------------
strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串中包含的所有字符。
当strtok()在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\0 字符。
在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针。
strtok函数会破坏被分解字符串的完整,调用前和调用后的buf已经不一样了
int i = 0;
char buf[] = "192..168.0...8...";
int len = strlen(buf);
char *p = strtok(buf, ".");
printf("%s\n", p);
printf("%s\n", buf);
for(i=0;i<len;i++)
{
printf("%c", buf[i]);
}
printf("\n");
p = strtok(NULL, ".");
printf("%s\n", p);
p = strtok(NULL, ".");
printf("%s\n", p);
p = strtok(NULL, ".");
printf("%s\n", p);