Это происходит потому, что вы получаете возвращаемое значение команды, а не выходные данные.
Если вы хотите использовать системную команду ls
, а не opendir
и readdir
, как предлагали другие, вам следует использовать popen
вместо system
:
#include <stdio.h>
int main()
{
FILE *in;
char buff[512];
/* popen creates a pipe so we can read the output
of the program we are invoking */
if (!(in = popen("ls -l /root/opencv/*.png|wc -l", "r")))
{
/* if popen failed */
return 1;
}
/* read the output of ls, one line at a time */
while (fgets(buff, sizeof(buff), in) != NULL )
{
printf("Number of files: %s", buff);
}
/* close the pipe */
pclose(in);
return 0;
}