Приоритет изменения текущего процесса в C

Два возможных подхода.

1 / Я не думаю, что popen() является частью стандарта C ++ (это часть POSIX из памяти), но он доступен для всех UNIX, с которыми я работал ( и вы, кажется, нацелились на UNIX, так как ваша команда «./some_command»).

2 / В случае, если нет popen(), вы можете использовать system( "./some_command >/tmp/some_command.out" ) ;, затем использовать обычный Функции ввода / вывода для обработки выходного файла.

11
задан Kirill Kobelev 21 December 2016 в 03:25
поделиться

3 ответа

Попытка:

#include <sys/time.h>
#include <sys/resource.h>

int main(){
    setpriority(PRIO_PROCESS, 0, -20);
}

Обратите внимание, что необходимо работать как суперпользователь за этим для работы.

(для большего количества информации введите 'человека setpriority' при подсказке.)

23
ответ дан 3 December 2019 в 02:53
поделиться

allain

Можно ли понизить приоритет собственного процесса, не будучи суперпользователем?

Конечно. Знайте, однако, что это - улица с односторонним движением. Вы не можете даже возвратиться туда, где Вы запустили. И даже довольно маленькие сокращения приоритета могут иметь поразительно большие эффекты на время выполнения, когда существует значительная нагрузка на систему.

2
ответ дан 3 December 2019 в 02:53
поделиться

При выполнении чего-то вроде этого под Unix Ваш хотеть к (как корень) chmod Вы определяете задачу и устанавливаете бит s. Затем можно измениться, кого Вы выполняете как, каков Ваш приоритет, Ваше планирование потоков, и т.д. во время выполнения.

Это является большим, пока Вы не пишете в широком масштабе многопоточное приложение с ошибкой в нем так, чтобы Вы приняли 48 полей CPU, и никто не может завершить работу Вас, потому что Ваш имеют каждый ЦП, вращающийся в 100% со всем набором потока к SHED_FIFO (выполнения к завершению) работающий как корень.

Nah.. Я не говорил бы на основе опыта....

5
ответ дан 3 December 2019 в 02:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: