LinuxQuestions.org
Review your favorite Linux distribution.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - General
User Name
Password
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.

Notices


Reply
  Search this Thread
Old 04-17-2008, 11:42 PM   #1
gaurav84
LQ Newbie
 
Registered: Apr 2008
Posts: 2

Rep: Reputation: 0
File Opened by some application


Hello All ,

I need to know , if some file is used by some application in Linux.

Its like , I need to make a function in C , which checks whether a file is opened or not by some application.

I can browse ,through /proc/*PID*/fd/
and collect the data from there .

but In case of txt file , there is no link to the file in the fd folder of that PID .

Any Idea , how to deal with txt file in such a case.
or is there some other way ,


-Gaurav
 
Old 04-18-2008, 12:54 AM   #2
BugZRevengE
Member
 
Registered: Oct 2005
Location: Australia
Distribution: Slackware & Kubuntu & CentOS
Posts: 106

Rep: Reputation: 17
lsof is your friend
By default it will show all open files, but you can get open files for a user:
lsof -u alowe (showing all open files for alowe)
or a process
lsof -p 123,456 (showing all open files for process numbers 123 and 456)
or a particular file
lsof /home/alowe/myfile (shows processes with /home/alowe/myfile open)

I do not think this always works for data files, as some applications only open the file when they want to read from or write to the file, closing the file while the user edits it... so on open, they open the file, then read, then close the file, after that when the user chooses to save the file, the process opens the file, writes out the data, and closes it.
If a file should be only opened and edited by one user the process should probably lock the file while the process runs.
I know my text editor (Kate) will open the file, and I can open it in another editor, and kate will warn me that another process has changed the file (and give me alist of options (replace, save as, drop changes), but it uses timestamps, etc to determine this, and nothing stops the second process from editing the file.
I mention these last notes because you mention text files, and they are probably not under the /proc file system because they are not technically open, just being edited by a process, but not in use.

Hope this helps
 
Old 04-18-2008, 01:00 AM   #3
gaurav84
LQ Newbie
 
Registered: Apr 2008
Posts: 2

Original Poster
Rep: Reputation: 0
So , what can we do for a txt/xml file specially to know , whether some process have opened it or not
 
Old 04-18-2008, 01:29 AM   #4
BugZRevengE
Member
 
Registered: Oct 2005
Location: Australia
Distribution: Slackware & Kubuntu & CentOS
Posts: 106

Rep: Reputation: 17
I don't think you can actually tell if a process is editing a memory buffered copy of a file, as it has not marked the file as locked and has not left the file open, it is technically not open or in use, just the memory copy of the data is being used.

Sorry, and I could (Hopefully) be wrong, but I doubt it...
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
How to close a opened file using shell scripting Ashok_mittal Programming 1 01-02-2008 06:51 AM
How to know whether a particular file is opened or not? kondrara Linux - Software 2 11-22-2007 04:08 AM
How to know whether a dev file has been opened or not? asahlot Linux - Software 2 03-05-2007 11:02 PM
preventing deletion of an opened file sayarsoft Programming 3 02-05-2007 07:05 PM
open SuSE 9.3 Logout from an opened file langbein SUSE / openSUSE 2 11-21-2005 03:19 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - General

All times are GMT -5. The time now is 09:22 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration