|
|
|
solaris, truss и дескриптор файла
|
|||
|---|---|---|---|
|
#18+
есть solaris 9 и кусок трассировки: Код: plaintext 1. 2. 3. не нашел нигде как определить файл который читается. как я понял 256,258 это дескриптор 1. Он (дескриптор) уникален в пределах системы или для каждого процесса только? 2. Никто не поделится "справочником" по вызовам truss ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 05:41:48 |
|
||
|
solaris, truss и дескриптор файла
|
|||
|---|---|---|---|
|
#18+
Да, ты правильно понял. А вообще гениальный совет - смотри ман man pread -там про нее все написано Дескриптор уникален в пределах процесса, причем для одного и того же файла у одного процесса может быть несколько дескрипторов - например один поток процесса открыл файл на запись, а другой на чтение. Справочника по вызовам truss нет и быть не может - это системные вызовы. Ищи в гугле что-нибудь типа Solaris system calls. К тому же для каждого системного вызова есть ман. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 08:35:37 |
|
||
|
solaris, truss и дескриптор файла
|
|||
|---|---|---|---|
|
#18+
Да, а чтобы определить файл нужно просмотреть трассировку и найти где вызов типа creat или open возвращает значение 256 и 258 соответственно - то есть происходит создание или открытие файла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 08:37:19 |
|
||
|
solaris, truss и дескриптор файла
|
|||
|---|---|---|---|
|
#18+
х.з.есть solaris 9 и кусок трассировки: Код: plaintext 1. 2. 3. не нашел нигде как определить файл который читается. lsof -p ... lsof ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2007, 07:08:18 |
|
||
|
solaris, truss и дескриптор файла
|
|||
|---|---|---|---|
|
#18+
Isaev х.з.есть solaris 9 и кусок трассировки: Код: plaintext 1. 2. 3. не нашел нигде как определить файл который читается. lsof -p ... lsof Здесь вам не тут (с) :) man pfiles Доступ к содержимому файла - через /proc/PID/fd/номер_дескриптора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2007, 10:07:22 |
|
||
|
solaris, truss и дескриптор файла
|
|||
|---|---|---|---|
|
#18+
УмаксуманДа, а чтобы определить файл нужно просмотреть трассировку и найти где вызов типа creat или open возвращает значение 256 и 258 соответственно - то есть происходит создание или открытие файла А если файл был открыт раньше начала трассировки? Scott Tiger Isaev х.з.есть solaris 9 и кусок трассировки: Код: plaintext 1. 2. 3. не нашел нигде как определить файл который читается. lsof -p ... lsof Здесь вам не тут (с) :) man pfiles Доступ к содержимому файла - через /proc/PID/fd/номер_дескриптора. Не понял как этим можно воспользоваться для решения задачи автора?! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2007, 11:57:15 |
|
||
|
solaris, truss и дескриптор файла
|
|||
|---|---|---|---|
|
#18+
IsaevА если файл был открыт раньше начала трассировки? pfiles, я ж сказал. А если и трассировка не с начала, и процесс закончился, то уже мало что поможет. Хотя есть вероятность, что повторный запуск процесса открывать файлы будет в том же порядке, и можно будет подсмотреть. Isaev Scott Tigerman pfiles Доступ к содержимому файла - через /proc/PID/fd/номер_дескриптора. Не понял как этим можно воспользоваться для решения задачи автора?! Не понял - в чём трудности? Определить имя файла по известным major device number, minor device number и inode number? Или получить список замапленных библиотек? Так второе есть в /proc/PID/object/ и есть стандартные средства pldd и, для особо въедливых, pmap , а первое неплохо уметь и самому определять. Понятно, что lsof даёт более человекочитаемый вывод, но это не есть стандартная утилита, значит, нет смысла её использовать при наличии стандартной альтернативы. В 10-й версии, кстати, pfiles уже выводит имя файла, а в /proc есть /proc/PID/path/ . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2007, 12:59:07 |
|
||
|
solaris, truss и дескриптор файла
|
|||
|---|---|---|---|
|
#18+
Scott TigerНе понял - в чём трудности? Определить имя файла по известным major device number, minor device number и inode number? в общем то да. пришлось потратить 20 мин. :) забывается все блин то что lsof - нету уже сказали. за pfiles спасибо. про major|minor: совсем уж удобного способа не нашел, только получение "sd@1,0:a │ 0, 8" а дальше что у меня на 1 ид я знаю. Как-то можно получить ссылку напрямую на ФС? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2007, 11:35:22 |
|
||
|
solaris, truss и дескриптор файла
|
|||
|---|---|---|---|
|
#18+
х.з. про major|minor: совсем уж удобного способа не нашел, только получение "sd@1,0:a │ 0, 8" а дальше что у меня на 1 ид я знаю. Как-то можно получить ссылку напрямую на ФС? Ну, например, minor number присутствует в выводе mount, правда - в шестнадцатиричном виде. Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2007, 15:40:07 |
|
||
|
|

start [/forum/topic.php?fid=25&gotonew=1&tid=1487624]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
5ms |
get first new msg: |
4ms |
get forum data: |
1ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 292ms |

| 0 / 0 |
