Я выполнил следующую команду в AIX, чтобы определить файлы, открытые процессом 200866 в AIX 6.1.
procfiles -nc 200866
и получил следующие примеры выходных данных:
Current rlimit: 2000 file descriptors
---------------------------------------------------------------------------------------------------------------
FD TYPE MODE DEV/RDEV UID GID OPMOD NAME
---------------------------------------------------------------------------------------------------------------
10 - rw-r--r-- 10, 4 root system R|NH|DY
Может ли кто-нибудь помочь мне понять значение NH и DY в столбце OPMOD? Я много гуглил, но не нашел подходящих страниц. Спасибо!
Это просто сокращение от флагов режима открытия файла, которое вы видите более полно без -c
флаг.
Я не могу найти документацию по сокращениям, но названия флагов подробно описаны в open()
документы. В вашем конкретном примере это будет файл, открытый только для чтения (R
), с участием O_NSHARE
(NH
) и O_DELAY
(DY
).
Вот несколько с фрагментом C, который их «произвел».
open("./1", O_RDONLY|O_DELAY);
open("./2", O_RDONLY|O_NDELAY);
open("./3", O_WRONLY);
open("./4", O_RDWR|O_APPEND);
open("./5", O_RDONLY|O_NSHARE);
open("./6", O_RDONLY|O_RSHARE);
open("./7", O_RDWR|O_CIO);
22282268 : ./a.out
Current rlimit: 32000 file descriptors
---------------------------------------------------------------------------
FD TYPE MODE DEV/RDEV UID GID OPMOD NAME
---------------------------------------------------------------------------
0 c --------- 10, 4(20, 1) xxxxxxxx xxxxxxxx R-W|NC //dev/pts/1
1 c --------- 10, 4(20, 1) xxxxxxxx xxxxxxxx R-W|NC //dev/pts/1
2 c --------- 10, 4(20, 1) xxxxxxxx xxxxxxxx R-W|NC //dev/pts/1
3 - r--r--r-- 10, 8 xxxxxxxx xxxxxxxx R|DY /home/xxxxxxxx/1
4 - r--r--r-- 10, 8 xxxxxxxx xxxxxxxx R|NDY /home/xxxxxxxx/2
5 - -w------- 10, 8 xxxxxxxx xxxxxxxx W /home/xxxxxxxx/3
6 - rw-r--r-- 10, 8 xxxxxxxx xxxxxxxx R-W|A /home/xxxxxxxx/4
7 - r--r--r-- 10, 8 xxxxxxxx xxxxxxxx R|NH /home/xxxxxxxx/5
8 - r--r--r-- 10, 8 xxxxxxxx xxxxxxxx R|RH /home/xxxxxxxx/6
9 - rw-r--r-- 10, 8 xxxxxxxx xxxxxxxx R-W|C /home/xxxxxxxx/7
$ procfiles -n 22282268
22282268 : ./a.out
Current rlimit: 32000 file descriptors
0: S_IFCHR mode:00 dev:10,4 ino:28770 uid:29912237 gid:29912237 rdev:20,1
O_RDWR | O_NOCTTY name://dev/pts/1
1: S_IFCHR mode:00 dev:10,4 ino:28770 uid:29912237 gid:29912237 rdev:20,1
O_RDWR | O_NOCTTY name://dev/pts/1
2: S_IFCHR mode:00 dev:10,4 ino:28770 uid:29912237 gid:29912237 rdev:20,1
O_RDWR | O_NOCTTY name://dev/pts/1
3: S_IFREG mode:0444 dev:10,8 ino:62 uid:29912237 gid:29912237 rdev:0,0
O_RDONLY | O_DELAY size:0 name:/home/xxxxxxxx/1
4: S_IFREG mode:0444 dev:10,8 ino:63 uid:29912237 gid:29912237 rdev:0,0
O_RDONLY | O_NDELAY size:0 name:/home/xxxxxxxx/2
5: S_IFREG mode:0200 dev:10,8 ino:67 uid:29912237 gid:29912237 rdev:0,0
O_WRONLY size:0 name:/home/xxxxxxxx/3
6: S_IFREG mode:0644 dev:10,8 ino:68 uid:29912237 gid:29912237 rdev:0,0
O_RDWR | O_APPEND size:0 name:/home/xxxxxxxx/4
7: S_IFREG mode:0444 dev:10,8 ino:69 uid:29912237 gid:29912237 rdev:0,0
O_RDONLY | O_NSHARE size:0 name:/home/xxxxxxxx/5
8: S_IFREG mode:0444 dev:10,8 ino:70 uid:29912237 gid:29912237 rdev:0,0
O_RDONLY | O_RSHARE size:0 name:/home/xxxxxxxx/6
9: S_IFREG mode:0644 dev:10,8 ino:71 uid:29912237 gid:29912237 rdev:0,0
O_RDWR | O_CIO size:0 name:/home/xxxxxxxx/7