Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mpim-sw
libcdi
Commits
86b28335
Commit
86b28335
authored
Nov 16, 2012
by
Uwe Schulzweida
Browse files
file.c: added support for unbuffered write
parent
369f0697
Changes
2
Hide whitespace changes
Inline
Side-by-side
ChangeLog
View file @
86b28335
...
...
@@ -2,6 +2,10 @@
* Version 1.5.9 released
2012-11-16 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* file.c: added support for unbuffered write
2012-11-15 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* cdfReadVarSliceDP: store DATATYPE_FLT32 in a float array and convert it to double (speedup 2x)
...
...
src/file.c
View file @
86b28335
...
...
@@ -153,7 +153,7 @@ static void file_table_print(void);
* A version string.
*/
#undef LIBVERSION
#define LIBVERSION 1.8.
0
#define LIBVERSION 1.8.
1
#define XSTRING(x) #x
#define STRING(x) XSTRING(x)
const
char
file_libvers
[]
=
STRING
(
LIBVERSION
)
" of "
__DATE__
" "
__TIME__
;
...
...
@@ -173,6 +173,7 @@ const char file_libvers[] = STRING(LIBVERSION) " of "__DATE__" "__TIME__;
22/08/2010 1.7.0 refactor
11/11/2010 1.7.1 update for changed interface of error.h
02/02/2012 1.8.0 cleanup
16/11/2012 1.8.1 added support for unbuffered write
*/
...
...
@@ -847,6 +848,8 @@ void file_set_buffer(bfile_t *fileptr)
if
(
buffersize
<
(
size_t
)
fileptr
->
size
&&
buffersize
<
minblocksize
)
buffersize
=
minblocksize
;
}
if
(
buffersize
==
0
)
buffersize
=
1
;
}
else
{
...
...
@@ -863,17 +866,18 @@ void file_set_buffer(bfile_t *fileptr)
}
}
if
(
buffersize
==
0
)
buffersize
=
1
;
if
(
fileptr
->
bufferType
==
FILE_BUFTYPE_STD
||
fileptr
->
type
==
FILE_TYPE_FOPEN
)
{
fileptr
->
buffer
=
(
char
*
)
malloc
(
buffersize
);
if
(
fileptr
->
buffer
==
NULL
)
SysError
(
"Allocation of file buffer failed!"
);
if
(
buffersize
>
0
)
{
fileptr
->
buffer
=
(
char
*
)
malloc
(
buffersize
);
if
(
fileptr
->
buffer
==
NULL
)
SysError
(
"Allocation of file buffer failed!"
);
}
}
if
(
fileptr
->
type
==
FILE_TYPE_FOPEN
)
if
(
setvbuf
(
fileptr
->
fp
,
fileptr
->
buffer
,
_IOF
BF
,
buffersize
)
)
if
(
setvbuf
(
fileptr
->
fp
,
fileptr
->
buffer
,
fileptr
->
buffer
?
_IOFBF
:
_ION
BF
,
buffersize
)
)
SysError
(
"setvbuf failed!"
);
fileptr
->
bufferSize
=
buffersize
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment