Я запускал следующую программу в качестве пользователя root в C++.системная команда, не работающая в C++
int main(){
if (system("sudo sh -c sync")!=0)
cout<<"\n sync failed";
if (system("echo 3 > /proc/sys/vm/drop_caches")!=0)
cout<<"\n clearning cache failed";
}
Однако я нахожу, что кэш-й не получает очищаемся, и я получаю следующий результат:
sync failed.
clearing cache failed.
Я не знаю, где я буду неправильно. Может кто-то, пожалуйста, помогите мне с этим немного.
Получает ли возвращаемое значение вам что-нибудь? – doctorlove
sudo обычно требует пароля. Вас спрашивают пароль при запуске? – zmbq
Я не думаю, что 'sync' даже нужно запускать как root. – ams