在C中获取system()的输出

时间:2011-08-17 08:22:56

标签: c xcode unix

我想将system("stat -f %g /dev/console")给出的数字放在一个变量中(使用C在Xcode中工作)。如何最好地实现这一目标?

4 个答案:

答案 0 :(得分:3)

我宁愿使用stat函数:

struct stat file_details;
stat("/dev/console", &file_details);
printf("group id : %ld\n", (long) file_details.st_gid);

答案 1 :(得分:0)

int variable;
variable = system("stat-f %g /dev/console");

答案 2 :(得分:0)

如果要捕获命令的输出,则需要使用popen而不是system。 E.g。

#include <stdio.h>

int main(void)
{
   int id = -1;
   FILE *fp = popen("stat -f %g /dev/console", "r");

   if (fp != NULL)
   {
       fscanf(fp, "%d", &id);
       pclose(fp);
   }

   printf("id = %d\n", id);

   return 0;
}

答案 3 :(得分:-1)

#include<stdlib.h>

...

int return_value = system("stat-f %g /dev/console");