Mercurial > hg > early-roguelike
comparison rogue4/mach_dep.c @ 279:d3968e9cb98d
Use C stdio functions for score files and save files.
Switching from Unix file descriptor operations to C standard FILE*
functions will reduce portability problems.
author | John "Elwin" Edwards |
---|---|
date | Fri, 15 Sep 2017 19:57:54 -0400 |
parents | 1b73a8641b37 |
children | 6376b514a30b |
comparison
equal
deleted
inserted
replaced
278:c222f9d56776 | 279:d3968e9cb98d |
---|---|
35 #include <time.h> | 35 #include <time.h> |
36 #include <signal.h> | 36 #include <signal.h> |
37 #include <sys/stat.h> | 37 #include <sys/stat.h> |
38 #include <fcntl.h> | 38 #include <fcntl.h> |
39 #include <string.h> | 39 #include <string.h> |
40 #include <errno.h> | |
40 #include "rogue.h" | 41 #include "rogue.h" |
41 | 42 |
42 int num_checks; /* times we've gone over in checkout() */ | 43 int num_checks; /* times we've gone over in checkout() */ |
43 | 44 |
44 #ifdef SCOREFILE | 45 #ifdef SCOREFILE |
78 */ | 79 */ |
79 void | 80 void |
80 open_score(void) | 81 open_score(void) |
81 { | 82 { |
82 #ifdef SCOREFILE | 83 #ifdef SCOREFILE |
83 fd = open(SCOREFILE, O_RDWR | O_CREAT, 0666 ); | 84 score_file = fopen(SCOREFILE, "r+"); |
85 if ((score_file == NULL) && (errno == ENOENT)) { | |
86 score_file = fopen(SCOREFILE, "w+"); | |
87 } | |
84 #else | 88 #else |
85 fd = -1; | 89 score_file = NULL; |
86 #endif | 90 #endif |
87 if (!use_savedir) | 91 if (!use_savedir) |
88 md_normaluser(); | 92 md_normaluser(); |
89 return; | 93 return; |
90 } | 94 } |
91 | 95 |
92 void | 96 void |
93 open_log(void) | 97 open_log(void) |
94 { | 98 { |
95 #ifdef LOGFILE | 99 #ifdef LOGFILE |
96 lfd = open(LOGFILE, O_WRONLY | O_APPEND | O_CREAT, 0666); | 100 log_file = fopen(LOGFILE, "a"); |
97 #else | 101 #else |
98 lfd = -1; | 102 log_file = NULL; |
99 #endif | 103 #endif |
100 return; | 104 return; |
101 } | 105 } |
102 | 106 |
103 /* | 107 /* |