\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
{\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
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
return 0;\r
}\r
else\r
- return seek(fp->FD, amt, whence);\r
+ return _SysSeek(fp->FD, amt, whence);\r
}\r
\r
\r
* \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
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
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
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
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
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
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