/******************************************************************************
 *                                                                            *
 *      msio.c                                                                *
 *                                                                            *
 *      [XeBbNo͊֐                                          *
 *                                                                            *
 ******************************************************************************/

  XV

  2005/06/09 Version 1.01 Ems_ftell, ms_rewind ǉB
                          Ems_fprintf, ms_fputs, ms_fread, ms_fwrite ̏
                            Ԃ|߂Ă̂ŁAł悤
                            ύXB
                          Ems_fprintf ̃tH[}bgwŁA^Cvs
                            w肵ꍇɕϊł镶̒Ẑ
                            B
                          Ems_fgets Ńt@C̏I[ɒBꍇɃobt@s
                            ɃktĂȂ̂ŏCB

  2005/06/03 Version 1.00 Ems_fclose, ms_fgetc, ms_fgets, ms_fopen,
                            ms_fprintf, ms_fputc, ms_fputs, ms_fread,
                            ms_freopen, ms_fseek, ms_fwrite, ms_remove,
                            ms_rename ǉB

  ֐ꗗ

 +-----------------------------+------+------+--------------------------------+
 |           ֐            | ǉ | C |              l              |
 +-----------------------------+------+------+--------------------------------+
 | ms_fclose                   | 1.00 |      |                                |
 | ms_fgetc                    | 1.00 |      |                                |
 | ms_fgets                    | 1.00 | 1.01 |                                |
 | ms_fopen                    | 1.00 |      |                                |
 | ms_fprintf                  | 1.00 | 1.01 |                                |
 | ms_fputc                    | 1.00 |      |                                |
 | ms_fputs                    | 1.00 | 1.01 |                                |
 | ms_fread                    | 1.00 | 1.01 |                                |
 | ms_freopen                  | 1.00 |      |                                |
 | ms_fseek                    | 1.00 |      |                                |
 | ms_ftell                    | 1.01 |      |                                |
 | ms_fwrite                   | 1.00 | 1.01 |                                |
 | ms_remove                   | 1.00 |      |                                |
 | ms_rename                   | 1.00 |      |                                |
 | ms_rewind                   | 1.01 |      |                                |
 +-----------------------------+------+------+--------------------------------+

/******************************************************************************
 *
 *   Fms_fclose / MSt@C̃N[Y
 *
 * ďo`F#include "msio.h"
 *           void ms_fclose(int fd);
 *
 *     FfdɎw肳ꂽMSt@CN[Y܂B
 *
 *   lF܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_fgetc / MSt@C̓̕ǂݍ
 *
 * ďo`F#include "msio.h"
 *           int ms_fgetc(int fd);
 *
 *     FfdɎw肳ꂽMSt@C1ǂݏo܂Bǂݍ܂ꂽ
 *           gȂint^ɕϊ܂BfdɎw肳ꂽMSt@C̃t
 *           @C|C^͎̕w悤ɃCNg܂B
 *
 *   lFǂݍ݂ɐꍇ͕Ԃ܂BG[ꍇt@
 *           C̏I[ɒBꍇEOFԂ܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_fgets / MSt@C̎̕擾
 *
 * ďo`F#include "msio.h"
 *           char *ms_fgets(char *s, int n, int fd);
 *
 *     FfdɎw肳ꂽMSt@C當ǂݍ݁AsɎobt@
 *           Ɋi[܂Bǂݍ݂͍ŏ̉s(\n)ǂݍނAn-1oCg
 *           ̕ǂݍނ܂ōs܂Bs͂̂܂܊i[܂Bs
 *           ̖ɂ̓k(\0)t܂B
 *
 *   lF擾ɐꍇ̓obt@̃AhXsԂ܂Bsꍇ
 *           NULLԂ܂Bt@C̏I[ɒBA1ǂݍ
 *           łȂꍇNULLԂ܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_fopen / MSt@C̃I[v
 *
 * ďo`F#include "msio.h"
 *           int ms_fopen(const char *fname, const char *mode);
 *
 *     FfnameŎMSt@CI[v܂Bmodeł̓I[v
 *           MSt@C̃ANZX[h𕶎Ŏw肵܂Bw\ȕ͈
 *           ̒ʂłB
 *           ------------------------------------------------------------------
 *           [h        Ӗ
 *           ------------------------------------------------------------------
 *           r             ǂݏop[hŃI[vi݂ȂMSt@C
 *                         w肵ꍇAms_fopen֐ł̓G[ƂȂ܂j
 *           w             ݐp[hŃI[viɑ݂MSt@C
 *                         w肵ꍇAMSt@C̓e͔j󂳂܂j
 *           a             ǉ݃[hŃI[viAMSt@C
 *                         ݂Ȃꍇ́Aݗpɍ쐬j
 *           r+            MSt@Cɑ΂čXV[hiǂݏo{݁j
 *                         ŃI[v
 *           w+            VKMSt@Cɑ΂čXV[hiǂݏo{݁j
 *                         ŃI[viɑ݂MSt@Cw肵ꍇA
 *                         MSt@C̓e͔j󂳂܂j
 *           a+            MSt@Cɑ΂čXV[hiǂݏo{݁j
 *                         ŃI[viAMSt@C݂Ȃꍇ́A
 *                         ܂j
 *           ------------------------------------------------------------------
 *           
 *             ANZX[hww+w肵ꍇAMSt@C̓ej
 *             ܂BTdɎgpĉB
 *           
 *           ANZX[hr+Aw+Aa+iXV[hjw肷ƁAMSt@C
 *           ΂/o͂̑osƂł܂B
 *
 *   lFI[vꂽMSt@C̃t@CfBXNv^Ԃ܂BG[
 *           ꍇ-1Ԃ܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_fprintf / MSt@Cւ̏wo
 *
 * ďo`F#include "msio.h"
 *           int ms_fprintf(int fd, const char *format, ...);
 *
 *     FformatɎw肳ꂽfdɎw肳ꂽMSt@Cɏo܂B
 *           argumentꍇformatŎtH[}bgwɂďo
 *           ͂܂BtH[}bgw̎w@ы@\sprintfƓ
 *           BtH[}bgwɂĂsprintfQƂĉB
 *
 *   lFo͂Ԃ܂Bɂ͏I[ɕtꂽk(\0)
 *           ܂BG[ꍇEOFԂ܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_fputc / MSt@Cւ̕o
 *
 * ďo`F#include "msio.h"
 *           int ms_fputc(int c, int fd);
 *
 *     FcɎw肳ꂽfdɎw肳ꂽMSt@Cɏo͂܂B
 *
 *   lFo͂Ԃ܂BG[ꍇEOFԂ܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_fputs / MSt@Cւ̕o
 *
 * ďo`F#include "msio.h"
 *           int ms_fputs(const char *s, int fd);
 *
 *     FsŎ镶fdɎw肳ꂽMSt@Cɏo͂܂Bs̓k
 *           ŏI镶łȂ΂Ȃ܂B
 *
 *   lFŌɏo͂Ԃ܂BG[ꍇEOFԂ܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_fread / MSt@C̃f[^ǂݍ
 *
 * ďo`F#include "msio.h"
 *           size_t ms_fread(void *ptr, size_t size, size_t n, int fd);
 *
 *     FfdɎw肳ꂽMSt@CsizeoCg̃ubNn܂œǂݍ݁A
 *           ptrɎobt@֊i[܂BptrɎobt@size~n
 *           oCg̗̈悪mۂĂKv܂B
 *
 *   lFۂɓǂݍ܂ꂽubNԂ܂BnŎw肵菬
 *           Ԃꍇɂ̓G[An̃ubNǂݏoOɃt@
 *           C̏I[ɒB\܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_freopen / MSt@C̍Ċ蓖
 *
 * ďo`F#include "msio.h"
 *           int ms_freopen(const char *fname, const char *mode, int fd);
 *
 *     FfdɎw肳ꂽMSt@CN[YAfnameŎw肳ꂽMSt@
 *           CɃt@CfBXNv^蓖Ē܂Bmodeł͐VI[
 *           vMSt@C̃ANZX[h𕶎Ŏw肵܂Bw\
 *           ͈ȉ̒ʂłB
 *           ------------------------------------------------------------------
 *           [h        Ӗ
 *           ------------------------------------------------------------------
 *           r             ǂݏop[hŃI[vi݂ȂMSt@C
 *                         w肵ꍇAms_fopen֐ł̓G[ƂȂ܂j
 *           w             ݐp[hŃI[viɑ݂MSt@C
 *                         w肵ꍇAMSt@C̓e͔j󂳂܂j
 *           a             ǉ݃[hŃI[viAMSt@C
 *                         ݂Ȃꍇ́Aݗpɍ쐬j
 *           r+            MSt@Cɑ΂čXV[hiǂݏo{݁j
 *                         ŃI[v
 *           w+            VKMSt@Cɑ΂čXV[hiǂݏo{݁j
 *                         ŃI[viɑ݂MSt@Cw肵ꍇA
 *                         MSt@C̓e͔j󂳂܂j
 *           a+            MSt@Cɑ΂čXV[hiǂݏo{݁j
 *                         ŃI[viAMSt@C݂Ȃꍇ́A
 *                         ܂j
 *           ------------------------------------------------------------------
 *           
 *             ANZX[hww+w肵ꍇAMSt@C̓ej
 *             ܂BTdɎgpĉB
 *           
 *           ANZX[hr+Aw+Aa+iXV[hjw肷ƁAMSt@C
 *           ΂/o͂̑osƂł܂B
 *
 *   lFĊ蓖Ăꍇ̓I[vꂽMSt@C̃t@CfBXNv
 *           ^Ԃ܂BG[ꍇ-1Ԃ܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_fseek / MSt@C̃t@C|C^̈ړ
 *
 * ďo`F#include "msio.h"
 *           int ms_fseek(int fd, long offset, int whence);
 *
 *     FfdɎw肳ꂽMSt@C̃t@C|C^whenceŎw肷ʒu
 *           offsetoCg̏ꏊɈړ܂Bwhenceɂ<msio.h>ɒ`Ă
 *           鎟̋L萔w肵܂B
 *           ------------------------------------------------------------------
 *           whence                        Ӗ
 *           ------------------------------------------------------------------
 *           SEEK_SET                      擪
 *           SEEK_CUR                      ݂̈ʒu
 *           SEEK_END                      I[
 *           ------------------------------------------------------------------
 *
 *   lFt@C|C^̈ړɐꍇ0Ԃ܂Bsꍇ
 *           -1Ԃ܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_ftell / MSt@C̃t@C|C^̎擾
 *
 * ďo`F#include "msio.h"
 *           long ms_ftell(int fd);
 *
 *     FfdɎw肳ꂽMSt@C̃t@C|C^Ԃ܂B
 *
 *   lFt@C|C^̈ʒuԂ܂Bsꍇ-1Ԃ܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_fwrite / MSt@Cւ̃f[^
 *
 * ďo`F#include "msio.h"
 *           size_t ms_fwrite(const void *ptr, size_t size, size_t n, int fd);
 *
 *     FptrŎobt@̃f[^sizeoCg̃ubNōőn܂fd
 *           Ɏw肳ꂽMSt@C֏o͂܂B
 *
 *   lFۂɏ񂾃ubNԂ܂BnŎw肵菬
 *           Ԃꍇɂ̓G[\܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_remove / MSt@C̍폜
 *
 * ďo`F#include "msio.h"
 *           int ms_remove(const char *fname);
 *
 *     FfnameŎMSt@C폜܂B
 *
 *   lF폜ɐꍇ0Ԃ܂Bsꍇ-1Ԃ܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_rename / MSt@C̃t@CύX
 *
 * ďo`F#include "msio.h"
 *           int ms_rename(const char *oldname, const char *newname);
 *
 *     FoldnameŎt@CnewnameɕύX܂Boldnamenewname
 *           ͓fBNgɂKv܂BChJ[hgp邱
 *           Ƃ͂ł܂B
 *
 *   lFt@CύXɐꍇ0Ԃ܂Bsꍇ-1Ԃ
 *           ܂B
 *
 ******************************************************************************/

/******************************************************************************
 *
 *   Fms_rewind / MSt@C̃t@C|C^擪Ɉړ
 *
 * ďo`F#include "msio.h"
 *           void ms_rewind(int fd);
 *
 *     FfdɎw肳ꂽMSt@C̃t@C|C^t@C̐擪ֈړ
 *           ܂Bms_rewindfseek(fd, 0, SEEK_SET)Ɠ`łA߂lԂ
 *           ܂B
 *
 *   lF܂B
 *
 ******************************************************************************/

