Здравствуйте.
Есть некая программа, неважно что она делает (в крестики-нолики сама с собой играет). В ней есть отдельный поток, задача которого, запускать скрипт «pinre.sh» и считывать результат работы этого скрипта:
#!/bin/sh
BCM0=`cat /home/dima/test.txt`
BCM1=`cat /home/dima/test2.txt`
BCM2=`cat /home/dima/test3.txt`
S2="$BCM0 $BCM1 $BCM2"
echo "$S2"
exit 0
Скрипт опрашивает три файла (test*.txt), собирает результат в строку и делает echo «$S2», тоесть выплёвывает строку «bla1 bla2 bla3».
Вот поток, который запускает скрипт и ловит ответ:
...
void * thr_fnc() 
 { 
   for(;;) 
    { 
      sleep(1);
      FILE * read_pins;
      char in_data[16];
      read_pins = popen("pinre.sh", "r");
      int lastchar = fread(in_data, 1, 15, read_pins);
      in_data[lastchar] = '\0';
      printf("Data:%s", in_data);
      pclose(read_pins);
    } 
   return 0;
 } 
...
Вопрос заключается вот в чём: что из себя в данном случае представляет FILE * read_pins;, это какой-то файл, который создаётся на диске или область в памяти выделяется? Или это ещё что-то?
Перемещено leave из general
