summaryrefslogtreecommitdiff
path: root/src/common/lock.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/lock.c')
-rw-r--r--src/common/lock.c54
1 files changed, 30 insertions, 24 deletions
diff --git a/src/common/lock.c b/src/common/lock.c
index 42bbff0..7409baf 100644
--- a/src/common/lock.c
+++ b/src/common/lock.c
@@ -8,32 +8,38 @@
// (書き込みが終わるまで、旧ファイルを保管しておく)
// 新しいファイルの書き込み開始
-FILE* lock_fopen(const char* filename,int *info) {
- char newfile[512];
- FILE *fp;
- int no = getpid();
+FILE *lock_fopen (const char *filename, int *info)
+{
+ char newfile[512];
+ FILE *fp;
+ int no = getpid ();
- // 安全なファイル名を得る(手抜き)
- do {
- sprintf(newfile,"%s_%d.tmp",filename,no++);
- } while((fp = fopen_(newfile,"r")) && fclose_(fp));
- *info = --no;
- return fopen_(newfile,"w");
+ // 安全なファイル名を得る(手抜き)
+ do
+ {
+ sprintf (newfile, "%s_%d.tmp", filename, no++);
+ }
+ while ((fp = fopen_ (newfile, "r")) && fclose_ (fp));
+ *info = --no;
+ return fopen_ (newfile, "w");
}
// 旧ファイルを削除&新ファイルをリネーム
-int lock_fclose(FILE *fp,const char* filename,int *info) {
- int ret = 0;
- char newfile[512];
- if(fp != NULL) {
- ret = fclose_(fp);
- sprintf(newfile,"%s_%d.tmp",filename,*info);
- remove(filename);
- // このタイミングで落ちると最悪。
- rename(newfile,filename);
- return ret;
- } else {
- return 1;
- }
+int lock_fclose (FILE * fp, const char *filename, int *info)
+{
+ int ret = 0;
+ char newfile[512];
+ if (fp != NULL)
+ {
+ ret = fclose_ (fp);
+ sprintf (newfile, "%s_%d.tmp", filename, *info);
+ remove (filename);
+ // このタイミングで落ちると最悪。
+ rename (newfile, filename);
+ return ret;
+ }
+ else
+ {
+ return 1;
+ }
}
-