SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Leber en Miércoles 21 de Diciembre de 2011, 15:46

Título: Información fichero Linux
Publicado por: Leber en Miércoles 21 de Diciembre de 2011, 15:46
Buenos dias,

Mi pregunta es si hay alguna manera de saber con la API de linux si cierto fichero esta siendo usado por algun proceso ( si esta abierto digamos ).
La funcion stat no sirve, ya que da todos los datos sobre el fichero pero este no, y tampoco quiero hacer una busqueda en /proc/[pids]/[fd] para saber si ahi se encuentra el fichero, ya que perderia mucho tiempo.

Se os ocurre algo?

Gracias


Título: Re:Información fichero Linux
Publicado por: Epa en Jueves 22 de Diciembre de 2011, 01:53
Buenas

con el comando lsof podes listar los procesos que tienen abierto un archivo.
Estube buscando y no encontre una funcion que hago lo mismo, pero con un system lo podes usar.

Citar
lsof nombre_proceso

Saludos
Título: Re:Información fichero Linux
Publicado por: su - en Viernes 23 de Diciembre de 2011, 00:49
Citar
tampoco quiero hacer una busqueda en /proc/[pids]/[fd] para saber si ahi se encuentra el fichero, ya que perderia mucho tiempo.
Hmm... no creo que hacer lo que comentas tome mucho tiempo, y no me sorprenderia si lsof hace justamente eso (realmente no lo se).
En todo caso puedes ver el codigo de lsof que es libre y no esta sujeto a ninguna licencia. La copia de las fuentes que usa Debian las puedes descargar del siguiente link:

Codigo aqui. (http://ftp.de.debian.org/debian/pool/main/l/lsof/lsof_4.81.dfsg.1.orig.tar.gz)

Ten en cuenta que es multiplataforma.