Что означает каждое поле с выводом `stat` в OSX?

Так как bsr_matrix представляет собой разреженную матрицу блока, вы не можете изменять ее элементы по индексу. Возможно, вы искали что-то вроде csr_matrix ? При этом, обращая внимание на предупреждение, которое оно производит, вы можете делать то, что вы пытаетесь сделать:

In [192]: M = sparse.csr_matrix((N, N), dtype=np.complex)

In [193]: M[0, 0] = np.complex(1, 1)
C:\Users\\AppData\Local\Continuum\Anaconda3\lib\site-packages\scipy\sparse\compressed.py:742: SparseEfficiencyWarning: Changing the sparsity structure of a csr_matrix is expensive. lil_matrix is more efficient.
  SparseEfficiencyWarning)

In [194]: print(M)
  (0, 0)        (1+1j)

1
задан Jian Weihang 19 January 2019 в 03:27
поделиться

1 ответ

Используйте stat -s. Он печатает поля в том же порядке, но с метками (и без имени файла):

:; stat -s /etc/man.conf | fmt
st_dev=16777220 st_ino=641593 st_mode=0100644 st_nlink=1 st_uid=0
st_gid=0 st_rdev=0 st_size=4574 st_atime=1547885737 st_mtime=1500152545
st_ctime=1512806119 st_birthtime=1500152545 st_blksize=4194304
st_blocks=0 st_flags=32

Ваше первое загадочное поле - st_rdev, «тип устройства, для специального файлового индекса». Поскольку мы не регистрируем файл устройства, это ноль.

Ваше второе загадочное поле - st_birthtimespec, «время создания файла (рождения)» (см. Справочную страницу stat(2)). Это дарвинское 64-битное расширение.

Ваш 4096 не размер файла в байтах. Это st_blksize, «оптимальный размер блока для ввода / вывода». В моем примере это 4194304. Возможно, ваш файл находится в файловой системе HFS +. Мой находится в файловой системе APFS.

Ваше третье загадочное поле - st_flags, «пользовательские флаги для файла». У тебя ноль, поэтому флаги не установлены. В моем примере (/etc/man.conf) установлено UF_COMPRESSED.

В чем разница между st_dev и st_rdev?

Поле st_dev относится к устройству (жесткий диск / раздел / что угодно), содержащему файл. Поле st_rdev для файлов устройств сообщает ядру, какое устройство представляет сам файл. Попробуйте запустить stat для некоторых файлов устройств в /dev, например, /dev/null и /dev/rdisk0, чтобы увидеть ненулевые значения st_rdev.

Многие, я не нашел правильную страницу руководства (ни man stat, ни man lstat). Есть ли официальная документация, которая подробно объясняет каждое поле статистики? Где я могу его найти?

Используйте man 1 stat, чтобы узнать о флагах программы командной строки stat, например, о флаге -s, который я использовал. Затем используйте man 2 stat и ваш любимый поисковик, чтобы узнать, что означают поля.

0
ответ дан Ken Thomases 19 January 2019 в 03:27
поделиться
Другие вопросы по тегам:

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