mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-06-27 20:47:11 +02:00
bin
cmake
module
Base
Core
Entity
Library
Misc
Vendor
AES256
B64
Hash
MDBC
cmake
examples
include
libmariadb
CMakeLists.txt
acinclude.m4
array.c
bchange.c
bmove.c
bmove_upp.c
charset.c
client_plugin.c
dbug.c
default.c
errmsg.c
errors.c
get_password.c
getopt.c
getopt1.c
hash.c
int2str.c
is_prefix.c
libmariadb.c
list.c
llstr.c
longlong2str.c
ma_dtoa.c
ma_dyncol.c
ma_secure.c
ma_time.c
mf_dirname.c
mf_fn_ext.c
mf_format.c
mf_loadpath.c
mf_pack.c
mf_path.c
mf_unixpath.c
mf_wcomp.c
mulalloc.c
my_alloc.c
my_auth.c
my_charset.c
my_compress.c
my_context.c
my_div.c
my_error.c
my_fopen.c
my_fstream.c
my_getwd.c
my_init.c
my_lib.c
my_loaddata.c
my_malloc.c
my_messnc.c
my_net.c
my_once.c
my_open.c
my_port.c
my_pthread.c
my_read.c
my_realloc.c
my_seek.c
my_static.c
my_static.h
my_stmt.c
my_stmt_codec.c
my_symlink.c
my_thr_init.c
my_vsnprintf.c
my_write.c
mysql_async.c
mysys_priv.h
net.c
password.c
sha1.c
str2int.c
strcend.c
strcont.c
strend.c
strfill.c
string.c
strinstr.c
strmake.c
strmov.c
strnlen.c
strnmov.c
strto.c
strtoll.c
strtoull.c
strxmov.c
strxnmov.c
thr_mutex.c
typelib.c
violite.c
mariadb_config
plugins
win
win-iconv
zlib
CMakeLists.txt
COPYING.LIB
README
MaxmindDB
PUGIXML
SQLite
SimpleIni
SimpleSocket
TinyDir
Whirlpool
CMakeLists.txt
CMakeLists.txt
Core.cpp
Core.hpp
Logger.cpp
Logger.hpp
Main.cpp
Register.cpp
SqBase.hpp
sdk
.gitignore
.gitmodules
CMakeLists.txt
LICENSE
README.md
67 lines
2.2 KiB
C
67 lines
2.2 KiB
C
/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public
|
|
License along with this library; if not, write to the Free
|
|
Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
MA 02111-1301, USA */
|
|
|
|
#include "mysys_priv.h"
|
|
#include "mysys_err.h"
|
|
#include <errno.h>
|
|
|
|
|
|
/* Read a chunk of bytes from a file */
|
|
|
|
uint my_read(File Filedes, unsigned char *Buffer, uint Count, myf MyFlags)
|
|
/* File descriptor */
|
|
/* Buffer must be at least count bytes */
|
|
/* Max number of bytes returnd */
|
|
/* Flags on what to do on error */
|
|
{
|
|
uint readbytes;
|
|
DBUG_ENTER("my_read");
|
|
DBUG_PRINT("my",("Fd: %d Buffer: %lx Count: %u MyFlags: %d",
|
|
Filedes, Buffer, Count, MyFlags));
|
|
|
|
for (;;)
|
|
{
|
|
errno=0; /* Linux doesn't reset this */
|
|
if ((readbytes = (uint) read(Filedes, Buffer, Count)) != Count)
|
|
{
|
|
my_errno=errno ? errno : -1;
|
|
DBUG_PRINT("warning",("Read only %ld bytes off %ld from %d, errno: %d",
|
|
readbytes,Count,Filedes,my_errno));
|
|
#ifdef THREAD
|
|
if (readbytes == 0 && errno == EINTR)
|
|
continue; /* Interrupted */
|
|
#endif
|
|
if (MyFlags & (MY_WME | MY_FAE | MY_FNABP))
|
|
{
|
|
if ((int) readbytes == -1)
|
|
my_error(EE_READ, MYF(ME_BELL+ME_WAITTANG),
|
|
my_filename(Filedes),my_errno);
|
|
else if (MyFlags & (MY_NABP | MY_FNABP))
|
|
my_error(EE_EOFERR, MYF(ME_BELL+ME_WAITTANG),
|
|
my_filename(Filedes),my_errno);
|
|
}
|
|
if ((int) readbytes == -1 || (MyFlags & (MY_FNABP | MY_NABP)))
|
|
DBUG_RETURN(MY_FILE_ERROR); /* Return with error */
|
|
}
|
|
|
|
if (MyFlags & (MY_NABP | MY_FNABP))
|
|
readbytes=0; /* Ok on read */
|
|
break;
|
|
}
|
|
DBUG_RETURN(readbytes);
|
|
} /* my_read */
|