proc_pid_fd(5) File Formats Manual proc_pid_fd(5) NUME /proc/pid/fd/ - descriptori de fiiere DESCRIERE /proc/pid/fd/ Acesta este un subdirector care conine o intrare pentru fiecare fiier pe care procesul il are deschis, numit prin descriptorul sau de fiier, i care este o legatura simbolica catre fiierul real. Astfel, 0 este intrarea standard, 1 ieirea standard, 2 ieirea de eroare standard i aa mai departe. Pentru descriptorii de fiiere pentru conducte i socluri, intrarile vor fi legaturi simbolice al caror coninut este tipul de fiier cu nodul-i. Un apel readlink(2) pe acest fiier returneaza un ir de caractere in formatul: type:[nod-i] De exemplu, socket:[2248868] va fi un soclu, iar nodul-i al sau este 2248868. Pentru socluri, acest nod-i poate fi utilizat pentru a gasi mai multe informaii in unul dintre fiierele de sub /proc/net/. Pentru descriptorii de fiier care nu au un nod-i corespondent (de exemplu, descriptorii de fiier produi de bpf(2), epoll_create(2), eventfd(2), inotify_init(2), perf_event_open(2), signalfd(2), timerfd_create(2) i userfaultfd(2)), intrarea va fi o legatura simbolica cu coninutul de forma anon_inode:tip-fiier In multe cazuri (dar nu in toate), tip-fiier este incadrat intre paranteze drepte. De exemplu, un descriptor de fiier epoll va avea o legatura simbolica al carei coninut este irul anon_inode:[eventpoll]. Intr-un proces cu mai multe fire de execuie, coninutul acestui director nu este disponibil daca firul de execuie principal s-a incheiat deja (de obicei prin apelarea pthread_exit(3)). Programele care primesc un nume de fiier ca argument al liniei de comanda, dar nu primesc intrare de la intrarea standard daca nu este furnizat niciun argument, i programele care scriu intr-un fiier numit ca argument al liniei de comanda, dar nu ii trimit ieirea la ieirea standard daca nu este furnizat niciun argument, pot fi totui facute sa utilizeze intrarea standard sau ieirea standard prin utilizarea fiierelor /proc/pid/fd ca argumente ale liniei de comanda. De exemplu, presupunand ca -i este fanionul care desemneaza un fiier de intrare i -o este fanionul care desemneaza un fiier de ieire: $ foobar -i /proc/self/fd/0 -o /proc/self/fd/1 ... i avei un filtru funcional. /proc/self/fd/N este aproximativ la fel ca /dev/fd/N in unele sisteme UNIX i sisteme de tip UNIX. De fapt, majoritatea scripturilor Linux MAKEDEV leaga simbolic /dev/fd de /proc/self/fd. Majoritatea sistemelor ofera legaturi simbolice /dev/stdin, /dev/stdout i /dev/stderr, care fac legatura cu fiierele 0, 1 i 2 din /proc/self/fd. Astfel, exemplul de comanda de mai sus ar putea fi scris dupa cum urmeaza: $ foobar -i /dev/stdin -o /dev/stdout ... Permisiunea de a dereferenia sau de a citi (readlink(2)) legaturile simbolice din acest director este guvernata de o verificare a modului de acces ptrace PTRACE_MODE_READ_FSCREDS; consultai ptrace(2). Reinei ca pentru descriptorii de fiiere care se refera la noduri-i (conducte i socluri, a se vedea mai sus), acele noduri-i au in continuare bii de permisiune i informaii de proprietate distincte de cele ale intrarii /proc/pid/fd i ca proprietarul poate fi diferit de ID-urile de utilizator i de grup ale procesului. Un proces neprivilegiat poate sa nu aiba permisiunea de a le deschide, ca in acest exemplu: $ echo test | sudo -u nobody cat test $ echo test | sudo -u nobody cat /proc/self/fd/0 cat: /proc/self/fd/0: Permission denied Descriptorul de fiier 0 se refera la conducta creata de shell i deinuta de utilizatorul acelui shell, care nu este nobody, deci cat nu are permisiunea de a crea un nou descriptor de fiier pentru a citi din acel nod-i, chiar daca poate citi in continuare din descriptorul de fiier 0 existent. CONSULTAI I proc(5) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.9.1 2 mai 2024 proc_pid_fd(5)