Kernel/debug - Panic to VT for the first nested panic
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / stdio.c
index af8f007..840e24d 100644 (file)
@@ -109,16 +109,16 @@ EXPORT FILE *freopen(const char *file, const char *mode, FILE *fp)
 \r
        //Open File\r
        if(fp->FD != -1)\r
-               fp->FD = reopen(fp->FD, file, openFlags);\r
+               fp->FD = _SysReopen(fp->FD, file, openFlags);\r
        else\r
-               fp->FD = open(file, openFlags);\r
+               fp->FD = _SysOpen(file, openFlags);\r
        if(fp->FD == -1) {\r
                fp->Flags = 0;\r
                return NULL;\r
        }\r
        \r
        if( (fp->Flags & FILE_FLAG_MODE_MASK) == FILE_FLAG_MODE_APPEND ) {\r
-               seek(fp->FD, 0, SEEK_END);      //SEEK_END\r
+               _SysSeek(fp->FD, 0, SEEK_END);  //SEEK_END\r
        }\r
        \r
        return fp;\r
@@ -168,7 +168,7 @@ EXPORT int fclose(FILE *fp)
 {\r
        fflush(fp);\r
        if( fp->FD != -1 ) {\r
-               close(fp->FD);\r
+               _SysClose(fp->FD);\r
        }\r
        fp->Flags = 0;\r
        fp->FD = -1;\r
@@ -221,7 +221,7 @@ EXPORT off_t ftell(FILE *fp)
        if( fp->FD == -2 )\r
                return fp->Pos; \r
        else\r
-               return tell(fp->FD);\r
+               return _SysTell(fp->FD);\r
 }\r
 \r
 EXPORT int fseek(FILE *fp, long int amt, int whence)\r
@@ -251,7 +251,7 @@ EXPORT int fseek(FILE *fp, long int amt, int whence)
                return 0;\r
        }\r
        else\r
-               return seek(fp->FD, amt, whence);\r
+               return _SysSeek(fp->FD, amt, whence);\r
 }\r
 \r
 \r
@@ -300,7 +300,7 @@ EXPORT int fprintf(FILE *fp, const char *format, ...)
  * \fn EXPORT size_t fwrite(void *ptr, size_t size, size_t num, FILE *fp)\r
  * \brief Write to a stream\r
  */\r
-EXPORT size_t fwrite(void *ptr, size_t size, size_t num, FILE *fp)\r
+EXPORT size_t fwrite(const void *ptr, size_t size, size_t num, FILE *fp)\r
 {\r
        size_t  ret;\r
        \r
@@ -318,7 +318,7 @@ EXPORT size_t fwrite(void *ptr, size_t size, size_t num, FILE *fp)
                ret = num;\r
        }\r
        else {  \r
-               ret = write(fp->FD, ptr, size*num);\r
+               ret = _SysWrite(fp->FD, ptr, size*num);\r
                ret /= size;\r
        }\r
        \r
@@ -347,13 +347,40 @@ EXPORT size_t fread(void *ptr, size_t size, size_t num, FILE *fp)
                ret = num;\r
        }\r
        else {\r
-               ret = read(fp->FD, ptr, size*num);\r
+               ret = _SysRead(fp->FD, ptr, size*num);\r
                ret /= size;\r
        }\r
                \r
        return ret;\r
 }\r
 \r
+/**\r
+ * \brief Write a string to a stream (without trailing \n)\r
+ */\r
+EXPORT int fputs(const char *s, FILE *fp)\r
+{\r
+       int len = strlen(s);\r
+       return fwrite(s, 1, len, fp);\r
+}\r
+\r
+/**\r
+ * \brief Read a line (and possible trailing \n into a buffer)\r
+ */\r
+EXPORT char *fgets(char *s, int size, FILE *fp)\r
+{\r
+       int ofs = 0;\r
+       char    ch = '\0';\r
+       while( ofs < size && ch != '\n' )\r
+       {\r
+               if( fread(&ch, 1, 1, fp) != 1 )\r
+                       break;\r
+               s[ofs ++] = ch;\r
+       }\r
+       if( ofs < size )\r
+               s[ofs] = '\0';\r
+       return s;\r
+}\r
+\r
 /**\r
  * \fn EXPORT int fputc(int c, FILE *fp)\r
  * \brief Write a single character to the stream\r
@@ -366,7 +393,7 @@ EXPORT int fputc(int c, FILE *fp)
 EXPORT int putchar(int c)\r
 {\r
        c &= 0xFF;\r
-       return write(_stdout, &c, 1);\r
+       return _SysWrite(_stdout, &c, 1);\r
 }\r
 \r
 /**\r
@@ -384,7 +411,7 @@ EXPORT int fgetc(FILE *fp)
 EXPORT int getchar(void)\r
 {\r
        char    ret = 0;\r
-       if(read(_stdin, &ret, 1) != 1)  return -1;\r
+       if(_SysRead(_stdin, &ret, 1) != 1)      return -1;\r
        return ret;\r
 }\r
 \r
@@ -415,8 +442,8 @@ EXPORT int puts(const char *str)
        if(!str)        return 0;\r
        len = strlen(str);\r
        \r
-       len = write(_stdout, str, len);\r
-       write(_stdout, "\n", 1);\r
+       len = _SysWrite(_stdout, str, len);\r
+       _SysWrite(_stdout, "\n", 1);\r
        return len;\r
 }\r
 \r
@@ -681,7 +708,7 @@ EXPORT int printf(const char *format, ...)
        va_end(args);\r
        \r
        // Send to stdout\r
-       write(_stdout, buf, size+1);\r
+       _SysWrite(_stdout, buf, size+1);\r
        \r
        // Free buffer\r
        free(buf);\r

UCC git Repository :: git.ucc.asn.au