diff srogue/main.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 3d4252fa2ed3
children 17005af49963
line wrap: on
line diff
--- a/srogue/main.c	Sun Sep 10 17:30:13 2017 -0400
+++ b/srogue/main.c	Fri Sep 15 19:57:54 2017 -0400
@@ -21,6 +21,7 @@
 #include <fcntl.h>
 #include <stdio.h>
 #include <limits.h>
+#include <errno.h>
 #include <sys/stat.h>
 #include "rogue.h"
 
@@ -37,7 +38,7 @@
 char *roguehome(void);
 void open_records(void);
 
-extern int scorefd;
+extern FILE *scoreboard;
 extern FILE *logfile;
 
 int
@@ -480,8 +481,11 @@
 void
 open_records(void)
 {
-    if (scorefd < 0)
-	scorefd = open(scorefile, O_RDWR | O_CREAT, 0666);
+    if (scoreboard == NULL)
+        scoreboard = fopen(scorefile, "r+");
+    if (scoreboard == NULL && errno == ENOENT) {
+        scoreboard = fopen(scorefile, "w+");
+    }
 #ifdef LOGFILE
     if (logfile == NULL)
         logfile = fopen(LOGFILE, "a");