Если я выполняю следующий код, который является однопоточным:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
char[] cmd1 = "cat /sys/class/thermal/thermal_zone0/temp > temp.txt";
char[] cmd2 = "cat /sys/class/thermal/thermal_zone2/temp > temp2.txt";
system(cmd1);
system(cmd2);
return 0;
}
Я предполагал, что вышеупомянутый код является однопоточным приложением пользовательского уровня.Когда программа выполняется, особенно функция system (), которая требует выполнения команды оболочки.Так, когда эта программа вызывает две командные функции оболочки, они выполняются в двух разных потоках (поток для этой программы и другой поток, выполняемый оболочкой)?Или когда вызывается функция system (), операция передает управление оболочке, которая затем выгружается, выполняет команду и затем возвращает операцию потоку программы?
Может кто-нибудь сказать мне, как вышеупомянутый код работает на уровне потока?