Я не знаю ни одного системного вызова в Linux, который даст вам общую информацию о том, на каком процессоре работает поток. @nos правильно, что sched_getcpu () скажет вам, на каком процессоре работает поток, но только для вызывающего контекста.
Вы можете сделать это, запросив файловую систему /proc
. Однако, если вы обнаружите, что строите свое приложение на основе этой функциональности, вполне вероятно, что вам нужно пересмотреть свой дизайн.
Файл /proc/<pid>/stats
содержит поле, в котором указан последний процессор, на котором запущен процесс. Вам просто нужно проанализировать вывод. (используйте man proc
, чтобы увидеть список полей).