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 |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
 |
GNU/Linux Basic Guide
This 255-page guide will provide you with the keys to understand the philosophy of free software, teach you how to use and handle it, and give you the tools required to move easily in the world of GNU/Linux. Many users and administrators will be taking their first steps with this GNU/Linux Basic guide and it will show you how to approach and solve the problems you encounter.
Click Here to receive this Complete Guide absolutely free. |
|
 |
04-17-2008, 11:42 PM
|
#1
|
|
LQ Newbie
Registered: Apr 2008
Posts: 2
Rep:
|
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
|
|
|
|
04-18-2008, 12:54 AM
|
#2
|
|
Member
Registered: Oct 2005
Location: Australia
Distribution: Slackware & Kubuntu & CentOS
Posts: 106
Rep:
|
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
|
|
|
|
04-18-2008, 01:00 AM
|
#3
|
|
LQ Newbie
Registered: Apr 2008
Posts: 2
Original Poster
Rep:
|
So , what can we do for a txt/xml file specially to know , whether some process have opened it or not
|
|
|
|
04-18-2008, 01:29 AM
|
#4
|
|
Member
Registered: Oct 2005
Location: Australia
Distribution: Slackware & Kubuntu & CentOS
Posts: 106
Rep:
|
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...
|
|
|
|
| Thread Tools |
Search this Thread |
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -5. The time now is 12:27 AM.
|
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|