Problem while writing to a file...?


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Problem while writing to a file...?
# 1  
Old 02-20-2009
Lightbulb Problem while writing to a file...?

Hi, I have an issue with the file writing...

It is, Suppose that if I am writing some data to a file... and at the same time another user has opened the file and want to write in to the file(writing to the file at the same time)...the another has to know that someone has opened the file, mean while he has to write data to the buffer... Once the first user completes writing to the file...then the data in the buffer has to be written in the same file.

My problem is

1. Which mode the file has to be opened using OPEN system call...
2. How to make the other user know that 1st user has opened the file(File is opened in different systems...).
# 2  
Old 02-20-2009
You are referring to file locks. IT may be slightly different on some versions of UNIX, especially older ones.

Read your system documentation on fnctl() - it allows you to lock files. Your sytem may also support lockf().

This comment applies only to C.

For shell scripts one way to do this is to use a separate file - a lock file. Kind of like a traffic light to control access to the file.

Here is an example of a simple lock file - it's use is to test if the file exists or not. If it exists, do not write to the file. If ti does not exist - create the empty lock file, do your write, remove the empty lock file - so each user takes turns.

Best way to lock a file in BASH? - Yahoo! Answers
# 3  
Old 02-20-2009
Thank you for your reply...Yes, I'm using Fedora9 linux....and writing the program in C language....

My requirement is that both the users must able to write the data in to the file...

But how to know that another user has opened the file in write mode...So that 2nd user,mean while writes his data in to buffer and once the 1st user completes his writing, the data has to be placed into the file...

Will lsof() func helps?
# 4  
Old 02-21-2009
Like jim says, read your system documentation on fcntl(). You can do advisory locking, in which you:
  • Open the file
  • Call ioctl(fileno, F_GETLK, &lockdata) where lockdata is a properly filled 'struct flock' structure, details on which are in the fcntl documentation.
  • If the lock succeeds, you have the file. If you don't, you don't.
  • If you locked the file, call ioctl again with F_SETLK to release your lock.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Problem with writing to output - awk, echo

Hello all, I wrote this command line for some calculation on my given input files based on another input file which is a txt file. while read BAM REGION; do samtools view $BAM $REGION | awk '{if ($2==0) print $0}' | wc -l >>log.txt; echo "$REGION"; done >> log.txt <regions.txt It takes... (4 Replies)
Discussion started by: @man
4 Replies

2. Shell Programming and Scripting

Problem writing a search script

I trying to write a script in bash that take a list of users in “fileA” and searches another list user in “fileB” if the user does not exist in “file B” write the user to another file “file C”. Please note “fileA” and “fileB” contains over 1000 users Basically “fileA” “fileB” ... (2 Replies)
Discussion started by: hassan1
2 Replies

3. Shell Programming and Scripting

Problem with writing into a file through shell script

Hi all, I have a shell script which I use to login to the server from the client and then from the server I run a bunch of other scripts to complete my task. I am having problems with the script below- #!/bin/bash while read line do connections=`echo $line | cut -d " " -f 1` period=`echo... (3 Replies)
Discussion started by: joydeep4u
3 Replies

4. Shell Programming and Scripting

Problem writing to different files

Hello: I have the following code: ---------------------------------- open (OUTPUT_FILE, ">>/usr/users/rovolis/PREPAID/CC/TCG/PP.$cyear$cmonth$cday.txt")||die "$!"; 82 open (OUTPUT_FILE2, ">>/usr/users/rovolis/PREPAID/CC/TCG/PR.$cyear$cmonth$cday.txt")||die "$!"; 83 # ... (0 Replies)
Discussion started by: chriss_58
0 Replies

5. Shell Programming and Scripting

Problem in writing the data to a file in one row

Hi All I am reading data from the database and writing to temporary file in the below format. 1=XP|external_component|com.adp.meetingalertemail.processing.MeetingAlertEmail|EMAILALERTPUSH|32|4#XP |classpath|/usr/home/dfusr/lib/xalan.jar: /usr/home/dfusr/lib/xerces.jar: ... (2 Replies)
Discussion started by: rajeshorpu
2 Replies

6. Shell Programming and Scripting

Script writing problem

Self professed idot looking for help LOL Hi all, I am new to Unix and I have to write a shell script that will check to see if a file exist and then create it if it does not. The file I need to search for is titled "A1. dat" and here is my feeble attempt at creating the script: #!/bin/bash... (2 Replies)
Discussion started by: Tinablue
2 Replies

7. UNIX for Dummies Questions & Answers

Problem writing file path to txt file

if test -z "$1" then echo "you must give a filename or filepath" else path=`dirname $1` f_name =`basename $1` if path="." then path=`pwd` fi fi cat $f_name $path >> index.txt The only problem I am encountering with this is writing $path to index.txt Keeps going gaga: cat:... (1 Reply)
Discussion started by: Vintage_hegoog
1 Replies

8. Programming

very bizzare file writing problem

I'm trying to write a function which opens a file pointer and writes one of the function parameters into the file, however for some reason Im getting a core dump error. The code is as below void WriteToFile(char *file_name, char *data) { FILE *fptr; /*disk_name_size is a... (10 Replies)
Discussion started by: JamesGoh
10 Replies

9. UNIX for Dummies Questions & Answers

Problem with writing a program

Hi guys I'm having trouble with trying to create a script which calculates the grade of a student and the marks out of 300. The grades are: 0-49% fail 50-59% pass 60-69% credit pass 70-79% distinction 80-100% high distinction less than 0 or greater than 100 displays error message. My... (1 Reply)
Discussion started by: CompNoob
1 Replies

10. HP-UX

Problem in HP-Unix while writing into socket

Our system is having a server and multiple clients. We are monitoring the client FDs using select() system call in HP-UX. After establishing connection-using socket with the remote client, before start sending the data we are checking the status of socket using select( ) call. For first 16... (0 Replies)
Discussion started by: AshokG
0 Replies
Login or Register to Ask a Question