added QSE_FIO_TEMPORARY.
added qse_rand31() fixed a minor bug in handling QSE_FMTINTMAX_ZEROLEAD
This commit is contained in:
@ -6,7 +6,7 @@ AM_CPPFLAGS = \
|
||||
-I$(includedir)
|
||||
|
||||
|
||||
bin_PROGRAMS = xma fma pma chr str sll dll lda oht htb rbt fio pio sio time main main2 rex01 env path01 tre01 fmt01 fmt02
|
||||
bin_PROGRAMS = xma fma pma chr str sll dll lda oht htb rbt fio01 fio02 pio sio time main main2 rex01 env path01 tre01 fmt01 fmt02
|
||||
|
||||
LDFLAGS = -L../../lib/cmn
|
||||
LDADD = -lqsecmn
|
||||
@ -22,7 +22,8 @@ lda_SOURCES = lda.c
|
||||
oht_SOURCES = oht.c
|
||||
htb_SOURCES = htb.c
|
||||
rbt_SOURCES = rbt.c
|
||||
fio_SOURCES = fio.c
|
||||
fio01_SOURCES = fio01.c
|
||||
fio02_SOURCES = fio02.c
|
||||
pio_SOURCES = pio.c
|
||||
sio_SOURCES = sio.c
|
||||
time_SOURCES = time.c
|
||||
|
@ -36,10 +36,10 @@ build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
bin_PROGRAMS = xma$(EXEEXT) fma$(EXEEXT) pma$(EXEEXT) chr$(EXEEXT) \
|
||||
str$(EXEEXT) sll$(EXEEXT) dll$(EXEEXT) lda$(EXEEXT) \
|
||||
oht$(EXEEXT) htb$(EXEEXT) rbt$(EXEEXT) fio$(EXEEXT) \
|
||||
pio$(EXEEXT) sio$(EXEEXT) time$(EXEEXT) main$(EXEEXT) \
|
||||
main2$(EXEEXT) rex01$(EXEEXT) env$(EXEEXT) path01$(EXEEXT) \
|
||||
tre01$(EXEEXT) fmt01$(EXEEXT) fmt02$(EXEEXT)
|
||||
oht$(EXEEXT) htb$(EXEEXT) rbt$(EXEEXT) fio01$(EXEEXT) \
|
||||
fio02$(EXEEXT) pio$(EXEEXT) sio$(EXEEXT) time$(EXEEXT) \
|
||||
main$(EXEEXT) main2$(EXEEXT) rex01$(EXEEXT) env$(EXEEXT) \
|
||||
path01$(EXEEXT) tre01$(EXEEXT) fmt01$(EXEEXT) fmt02$(EXEEXT)
|
||||
subdir = samples/cmn
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
@ -68,10 +68,14 @@ am_env_OBJECTS = env.$(OBJEXT)
|
||||
env_OBJECTS = $(am_env_OBJECTS)
|
||||
env_LDADD = $(LDADD)
|
||||
env_DEPENDENCIES =
|
||||
am_fio_OBJECTS = fio.$(OBJEXT)
|
||||
fio_OBJECTS = $(am_fio_OBJECTS)
|
||||
fio_LDADD = $(LDADD)
|
||||
fio_DEPENDENCIES =
|
||||
am_fio01_OBJECTS = fio01.$(OBJEXT)
|
||||
fio01_OBJECTS = $(am_fio01_OBJECTS)
|
||||
fio01_LDADD = $(LDADD)
|
||||
fio01_DEPENDENCIES =
|
||||
am_fio02_OBJECTS = fio02.$(OBJEXT)
|
||||
fio02_OBJECTS = $(am_fio02_OBJECTS)
|
||||
fio02_LDADD = $(LDADD)
|
||||
fio02_DEPENDENCIES =
|
||||
am_fma_OBJECTS = fma.$(OBJEXT)
|
||||
fma_OBJECTS = $(am_fma_OBJECTS)
|
||||
fma_LDADD = $(LDADD)
|
||||
@ -161,19 +165,20 @@ CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(chr_SOURCES) $(dll_SOURCES) $(env_SOURCES) $(fio_SOURCES) \
|
||||
$(fma_SOURCES) $(fmt01_SOURCES) $(fmt02_SOURCES) \
|
||||
$(htb_SOURCES) $(lda_SOURCES) $(main_SOURCES) $(main2_SOURCES) \
|
||||
$(oht_SOURCES) $(path01_SOURCES) $(pio_SOURCES) $(pma_SOURCES) \
|
||||
$(rbt_SOURCES) $(rex01_SOURCES) $(sio_SOURCES) $(sll_SOURCES) \
|
||||
$(str_SOURCES) $(time_SOURCES) $(tre01_SOURCES) $(xma_SOURCES)
|
||||
SOURCES = $(chr_SOURCES) $(dll_SOURCES) $(env_SOURCES) \
|
||||
$(fio01_SOURCES) $(fio02_SOURCES) $(fma_SOURCES) \
|
||||
$(fmt01_SOURCES) $(fmt02_SOURCES) $(htb_SOURCES) \
|
||||
$(lda_SOURCES) $(main_SOURCES) $(main2_SOURCES) $(oht_SOURCES) \
|
||||
$(path01_SOURCES) $(pio_SOURCES) $(pma_SOURCES) $(rbt_SOURCES) \
|
||||
$(rex01_SOURCES) $(sio_SOURCES) $(sll_SOURCES) $(str_SOURCES) \
|
||||
$(time_SOURCES) $(tre01_SOURCES) $(xma_SOURCES)
|
||||
DIST_SOURCES = $(chr_SOURCES) $(dll_SOURCES) $(env_SOURCES) \
|
||||
$(fio_SOURCES) $(fma_SOURCES) $(fmt01_SOURCES) \
|
||||
$(fmt02_SOURCES) $(htb_SOURCES) $(lda_SOURCES) $(main_SOURCES) \
|
||||
$(main2_SOURCES) $(oht_SOURCES) $(path01_SOURCES) \
|
||||
$(pio_SOURCES) $(pma_SOURCES) $(rbt_SOURCES) $(rex01_SOURCES) \
|
||||
$(sio_SOURCES) $(sll_SOURCES) $(str_SOURCES) $(time_SOURCES) \
|
||||
$(tre01_SOURCES) $(xma_SOURCES)
|
||||
$(fio01_SOURCES) $(fio02_SOURCES) $(fma_SOURCES) \
|
||||
$(fmt01_SOURCES) $(fmt02_SOURCES) $(htb_SOURCES) \
|
||||
$(lda_SOURCES) $(main_SOURCES) $(main2_SOURCES) $(oht_SOURCES) \
|
||||
$(path01_SOURCES) $(pio_SOURCES) $(pma_SOURCES) $(rbt_SOURCES) \
|
||||
$(rex01_SOURCES) $(sio_SOURCES) $(sll_SOURCES) $(str_SOURCES) \
|
||||
$(time_SOURCES) $(tre01_SOURCES) $(xma_SOURCES)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
@ -336,7 +341,8 @@ lda_SOURCES = lda.c
|
||||
oht_SOURCES = oht.c
|
||||
htb_SOURCES = htb.c
|
||||
rbt_SOURCES = rbt.c
|
||||
fio_SOURCES = fio.c
|
||||
fio01_SOURCES = fio01.c
|
||||
fio02_SOURCES = fio02.c
|
||||
pio_SOURCES = pio.c
|
||||
sio_SOURCES = sio.c
|
||||
time_SOURCES = time.c
|
||||
@ -434,9 +440,12 @@ dll$(EXEEXT): $(dll_OBJECTS) $(dll_DEPENDENCIES)
|
||||
env$(EXEEXT): $(env_OBJECTS) $(env_DEPENDENCIES)
|
||||
@rm -f env$(EXEEXT)
|
||||
$(LINK) $(env_OBJECTS) $(env_LDADD) $(LIBS)
|
||||
fio$(EXEEXT): $(fio_OBJECTS) $(fio_DEPENDENCIES)
|
||||
@rm -f fio$(EXEEXT)
|
||||
$(LINK) $(fio_OBJECTS) $(fio_LDADD) $(LIBS)
|
||||
fio01$(EXEEXT): $(fio01_OBJECTS) $(fio01_DEPENDENCIES)
|
||||
@rm -f fio01$(EXEEXT)
|
||||
$(LINK) $(fio01_OBJECTS) $(fio01_LDADD) $(LIBS)
|
||||
fio02$(EXEEXT): $(fio02_OBJECTS) $(fio02_DEPENDENCIES)
|
||||
@rm -f fio02$(EXEEXT)
|
||||
$(LINK) $(fio02_OBJECTS) $(fio02_LDADD) $(LIBS)
|
||||
fma$(EXEEXT): $(fma_OBJECTS) $(fma_DEPENDENCIES)
|
||||
@rm -f fma$(EXEEXT)
|
||||
$(LINK) $(fma_OBJECTS) $(fma_LDADD) $(LIBS)
|
||||
@ -504,7 +513,8 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chr.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dll.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/env.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fio.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fio01.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fio02.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fma.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fmt01.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fmt02.Po@am__quote@
|
||||
|
93
qse/samples/cmn/fio02.c
Normal file
93
qse/samples/cmn/fio02.c
Normal file
@ -0,0 +1,93 @@
|
||||
#include <qse/cmn/fio.h>
|
||||
#include <qse/cmn/stdio.h>
|
||||
|
||||
#include <string.h>
|
||||
#include <locale.h>
|
||||
|
||||
#define R(f) \
|
||||
do { \
|
||||
qse_printf (QSE_T("== %s ==\n"), QSE_T(#f)); \
|
||||
if (f() == -1) return -1; \
|
||||
} while (0)
|
||||
|
||||
static int test1 (void)
|
||||
{
|
||||
qse_fio_t* fio;
|
||||
qse_ssize_t n;
|
||||
char x[] = "fio test";
|
||||
char x2[] = "fio test2";
|
||||
qse_fio_off_t off;
|
||||
char buf[1000];
|
||||
int i;
|
||||
qse_char_t file[] = QSE_T("fio02-XXXX");
|
||||
|
||||
fio = qse_fio_open (
|
||||
QSE_NULL,
|
||||
0,
|
||||
file,
|
||||
QSE_FIO_CREATE | QSE_FIO_EXCLUSIVE | QSE_FIO_TEMPORARY | QSE_FIO_READ | QSE_FIO_WRITE,
|
||||
QSE_FIO_RUSR|QSE_FIO_WUSR|QSE_FIO_RGRP|QSE_FIO_ROTH
|
||||
);
|
||||
if (fio == QSE_NULL)
|
||||
{
|
||||
qse_printf (QSE_T("cannot open file - last file tried [%s]\n"), file);
|
||||
return -1;
|
||||
}
|
||||
|
||||
qse_printf (QSE_T("file opened: [%s]\n"), file);
|
||||
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
n = qse_fio_write (fio, x, qse_mbslen(x));
|
||||
qse_printf (QSE_T("written %d bytes\n"), (int)n);
|
||||
|
||||
off = qse_fio_seek (fio, 0, QSE_FIO_CURRENT);
|
||||
if (off == (qse_fio_off_t)-1)
|
||||
{
|
||||
qse_printf (QSE_T("failed to get file offset\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
qse_printf (QSE_T("file offset at %ld\n"), (long)off);
|
||||
}
|
||||
|
||||
off = qse_fio_seek (fio, 0, QSE_FIO_BEGIN);
|
||||
if (off == (qse_fio_off_t)-1)
|
||||
{
|
||||
qse_printf (QSE_T("failed to set file offset\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
qse_printf (QSE_T("moved file offset to %ld\n"), (long)off);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
n = qse_fio_read (fio, buf, sizeof(buf));
|
||||
qse_printf (QSE_T("read %d bytes \n"), (int)n);
|
||||
if (n > 0)
|
||||
{
|
||||
#ifdef QSE_CHAR_IS_MCHAR
|
||||
qse_printf (QSE_T("buf => [%.*s]\n"), (int)n, buf);
|
||||
#else
|
||||
qse_printf (QSE_T("buf => [%.*S]\n"), (int)n, buf);
|
||||
#endif
|
||||
}
|
||||
|
||||
qse_fio_close (fio);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main ()
|
||||
{
|
||||
setlocale (LC_ALL, "");
|
||||
|
||||
qse_printf (QSE_T("--------------------------------------------------------------------------------\n"));
|
||||
qse_printf (QSE_T("Set the environment LANG to a Unicode locale such as UTF-8 if you see the illegal XXXXX errors. If you see such errors in Unicode locales, this program might be buggy. It is normal to see such messages in non-Unicode locales as it uses Unicode data\n"));
|
||||
qse_printf (QSE_T("--------------------------------------------------------------------------------\n"));
|
||||
|
||||
R (test1);
|
||||
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user