Unix каталог Proc

Im, использующий Xiaomi Redmi Prime 3S, для меня не использовался такой метод. Это расстроило меня

, что я пытался, я вышел из учетной записи Ми, а затем создал новую учетную запись. tada ... после этого я могу включить USB Debugging. Надеюсь, это поможет.

5
задан Andrew Grimm 6 October 2011 в 22:49
поделиться

7 ответов

Вы на самом деле хотите /proc/self/status, который даст Вам информацию о в настоящее время выполняемом процессе.

Вот пример:

$ cat /proc/self/status
Name:   cat
State:  R (running)
Tgid:   17618
Pid:    17618
PPid:   3083
TracerPid:      0
Uid:    500 500 500 500
Gid:    500 500 500 500
FDSize: 32
Groups: 10 488 500 
VmPeak:     4792 kB
VmSize:     4792 kB
VmLck:         0 kB
VmHWM:       432 kB
VmRSS:       432 kB
VmData:      156 kB
VmStk:        84 kB
VmExe:        32 kB
VmLib:      1532 kB
VmPTE:        24 kB
Threads:    1
SigQ:   0/32268
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000000000000
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
Cpus_allowed:   00000003
Mems_allowed:   1
voluntary_ctxt_switches:    0
nonvoluntary_ctxt_switches: 3

Вы, вероятно, хотите посмотреть на первые числа на строках Uid и Gid. Можно искать, какие uid числа отображаются на какой имя пользователя путем взгляда на /etc/passwd, или вызывая соответствующие функции для отображения uid к имени пользователя на любом языке Вы используете.

Идеально, Вы просто назвали бы системный вызов getuid() искать эту информацию, делая его путем взгляда на /proc/ контрпродуктивно.

8
ответ дан 18 December 2019 в 06:52
поделиться

Насколько мне известно, /proc характерно для Linux, это не находится в UNIX в целом. Если Вы действительно просто хотите текущий UID, используйте getuid() или geteuid() функция.

Если Вы знаете, что будете на Linux только, можно исследовать иерархию под /proc/self/*, это содержит различную информацию о текущем процессе. Помните это /proc является "волшебным", это - виртуальная файловая система, подачи ядра и содержание динамично сгенерированы в точке, Вы запрашиваете это. Поэтому это может возвратить информацию, специфичную для текущего процесса.

Например, попробуйте эту команду: cat /proc/self/status

3
ответ дан 18 December 2019 в 06:52
поделиться

Почему не просто используют"id -u"?

6
ответ дан 18 December 2019 в 06:52
поделиться

Я не уверен, что это может быть найдено в /proc. Вы могли попытаться использовать getuid() функционируйте или $USER переменная среды.

3
ответ дан 18 December 2019 в 06:52
поделиться

Скорее всего, Вы любой хочет проверить $USER переменная среды. Другие опции включают getuid и id -u, но поиск /proc конечно, не лучший метод действия.

2
ответ дан 18 December 2019 в 06:52
поделиться

Вещи, которые Вы ищете, могут быть в переменных среды. Необходимо быть осторожными, о какой оболочке Вы используете при проверке переменных среды. колотите использует "UID", в то время как tcsh использует "uid" и в *nix вопросы случая. Я также нашел, что tcsh устанавливает "ценуроз", но я не смог найти переменную соответствия в ударе.

0
ответ дан 18 December 2019 в 06:52
поделиться

В /proc/process_id/status (по крайней мере, на Linux), Вы найдете строку как это:

Uid:      1000    1000    1000    1000

Это говорит Вам uid пользователя, при учетной записи которого работает процесс.

Однако для обнаружения идентификатора процесса текущего процесса Вам был бы нужен системный вызов, и затем Вы могли бы также звонить getuid получить uid непосредственно.

Править: ах, /proc/self/status... изучение чего-то нового каждый день!

1
ответ дан 18 December 2019 в 06:52
поделиться
Другие вопросы по тегам:

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