![]() |
SIONlib
1.7.0
Scalable I/O library for parallel access to task-local files
|
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <assert.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include "sion.h"
#include "sion_debug.h"
#include "sion_error_handler.h"
#include "sion_internal.h"
#include "sion_file.h"
Go to the source code of this file.
Macros | |
#define | DFUNCTION "_sion_file_close" |
#define | STR_PRT(X) case X: return # X |
Functions | |
_sion_fileptr * | _sion_file_open (const char *fname, unsigned int flags, unsigned int addflags) |
Create and open a new file for writing. More... | |
int | _sion_file_close (_sion_fileptr *sion_fileptr) |
Close file and destroys fileptr structure. More... | |
sion_int64 | _sion_file_write (const void *data, sion_int64 bytes, _sion_fileptr *sion_fileptr) |
Write data to file. More... | |
sion_int64 | _sion_file_read (void *data, sion_int64 bytes, _sion_fileptr *sion_fileptr) |
Read data from file. More... | |
long | _sion_file_get_opt_blksize (_sion_fileptr *sion_fileptr) |
Get optional file system block size for a file. More... | |
int | _sion_file_stat_file (const char *fname) |
Check if file exists (LARGE_FILE support on BlueGene) More... | |
sion_int64 | _sion_file_set_position (_sion_fileptr *sion_fileptr, sion_int64 startpointer) |
Set new position in file. More... | |
sion_int64 | _sion_file_get_position (_sion_fileptr *sion_fileptr) |
Get new position in file. More... | |
int | _sion_file_flush (_sion_fileptr *sion_fileptr) |
Flush data to file. More... | |
int | _sion_file_purge (_sion_fileptr *sion_fileptr) |
Purge data to file. More... | |
int | _sion_file_set_buffer (_sion_fileptr *sion_fileptr, char *buffer, sion_int32 buffer_size) |
Set buffer of fp. More... | |
int | _sion_file_set_second_fileptr (_sion_fileptr *sion_fileptr, FILE *fileptr) |
Set second fileptr for file if opened with ANSI. More... | |
int | _sion_file_unset_second_fileptr (_sion_fileptr *sion_fileptr) |
Unset second fileptr for file if opened with ANSI. More... | |
int | _sion_file_get_fd (_sion_fileptr *sion_fileptr) |
Utility function: Get POSIX fp. More... | |
FILE * | _sion_file_open_ansi_write_create (const char *fname, unsigned int addflags) |
ANSI: Create and open a new file for writing. More... | |
FILE * | _sion_file_open_ansi_write_existing (const char *fname, unsigned int addflags) |
ANSI: Open a new file for writing. More... | |
FILE * | _sion_file_open_ansi_read (const char *fname, unsigned int addflags) |
ANSI: Open a file for reading. More... | |
int | _sion_file_close_ansi (FILE *fileptr) |
ANSI: Close a file. More... | |
long | _sion_file_get_opt_blksize_ansi (FILE *fileptr) |
ANSI: Get optional file system block size for a file. More... | |
sion_int64 | _sion_file_set_position_ansi (FILE *fileptr, sion_int64 startpointer) |
ANSI: Set the start position for the current task. More... | |
sion_int64 | _sion_file_get_position_ansi (FILE *fileptr) |
ANSI: Get the current position in file. More... | |
int | _sion_file_flush_ansi (FILE *fileptr) |
ANSI: Flush the data to the disk. More... | |
int | _sion_file_purge_ansi (FILE *fileptr) |
ANSI: Purge the data to the disk. More... | |
int | _sion_file_set_buffer_ansi (FILE *fileptr, char *buffer, sion_int32 buffer_size) |
ANSI: set buffer of fp. More... | |
sion_int64 | _sion_file_write_ansi (const void *data, sion_int64 bytes, FILE *fileptr) |
ANSI: Write data to file. More... | |
sion_int64 | _sion_file_read_ansi (void *data, sion_int64 bytes, FILE *fileptr) |
ANSI: Read data from file. More... | |
int | _sion_file_open_posix_write_create (const char *fname, unsigned int addflags) |
POSIX: Create and open a new file for writing. More... | |
int | _sion_file_open_posix_write_existing (const char *fname, unsigned int addflags) |
POSIX: Open a new file for writing. More... | |
int | _sion_file_open_posix_read (const char *fname, unsigned int addflags) |
POSIX: Open a file for reading. More... | |
int | _sion_file_close_posix (int fd) |
POSIX: Close a file. More... | |
long | _sion_file_get_opt_blksize_posix (int fd) |
POSIX: Get optional file system block size for a file. More... | |
sion_int64 | _sion_file_set_position_posix (int fd, sion_int64 startpointer) |
POSIX: Set the start position for the current task. More... | |
sion_int64 | _sion_file_get_position_posix (int fd) |
POSIX: Get the current position in file. More... | |
int | _sion_file_flush_posix (int fd) |
POSIX: Flush the data to the disk. More... | |
int | _sion_file_purge_posix (int fd) |
POSIX: Purge the data to the disk. More... | |
int | _sion_file_set_buffer_posix (int fd, char *buffer, sion_int32 buffer_size) |
POSIX: set buffer of fd. More... | |
sion_int64 | _sion_file_write_posix (const void *data, sion_int64 bytes, int fd) |
POSIX: Write data to file. More... | |
sion_int64 | _sion_file_read_posix (void *data, sion_int64 bytes, int fd) |
POSIX: Read data from file. More... | |
_sion_fileptr * | _sion_file_alloc_and_init_sion_fileptr () |
Create and return _sion_fileptr. More... | |
char * | _sion_fileptrflags_to_str (unsigned int flag) |
char * | _sion_get_fileptr_desc (_sion_fileptr *sion_fileptr) |
_sion_fileptr* _sion_file_alloc_and_init_sion_fileptr | ( | ) |
Create and return _sion_fileptr.
Definition at line 1433 of file sion_file.c.
Referenced by _sion_file_open().
int _sion_file_close | ( | _sion_fileptr * | sion_fileptr | ) |
Close file and destroys fileptr structure.
[in,out] | sion_fileptr | file handle |
Definition at line 118 of file sion_file.c.
int _sion_file_close_ansi | ( | FILE * | fileptr | ) |
ANSI: Close a file.
*fileptr | ANSI file pointer |
Definition at line 617 of file sion_file.c.
int _sion_file_close_posix | ( | int | fd | ) |
POSIX: Close a file.
fd | POSIX file pointer |
Definition at line 1096 of file sion_file.c.
int _sion_file_flush | ( | _sion_fileptr * | sion_fileptr | ) |
Flush data to file.
sion_fileptr | fileptr |
Definition at line 304 of file sion_file.c.
int _sion_file_flush_ansi | ( | FILE * | fileptr | ) |
ANSI: Flush the data to the disk.
*fileptr | file handle |
SION_SUCCESS | if OK |
Definition at line 840 of file sion_file.c.
int _sion_file_flush_posix | ( | int | fd | ) |
POSIX: Flush the data to the disk.
fd | file descriptor |
SION_SUCCESS | if OK |
Definition at line 1306 of file sion_file.c.
int _sion_file_get_fd | ( | _sion_fileptr * | sion_fileptr | ) |
Utility function: Get POSIX fp.
sion_fileptr | file handle |
Definition at line 426 of file sion_file.c.
Referenced by fsion_get_fileno_c().
long _sion_file_get_opt_blksize | ( | _sion_fileptr * | sion_fileptr | ) |
Get optional file system block size for a file.
sion_fileptr | fileptr |
Definition at line 190 of file sion_file.c.
long _sion_file_get_opt_blksize_ansi | ( | FILE * | fileptr | ) |
ANSI: Get optional file system block size for a file.
fileptr | fileptr |
Definition at line 645 of file sion_file.c.
long _sion_file_get_opt_blksize_posix | ( | int | fd | ) |
POSIX: Get optional file system block size for a file.
fd | file descriptor |
Definition at line 1126 of file sion_file.c.
sion_int64 _sion_file_get_position | ( | _sion_fileptr * | sion_fileptr | ) |
Get new position in file.
sion_fileptr | fileptr |
Definition at line 272 of file sion_file.c.
sion_int64 _sion_file_get_position_ansi | ( | FILE * | fileptr | ) |
ANSI: Get the current position in file.
*fileptr | file handle |
position | in file |
Definition at line 773 of file sion_file.c.
sion_int64 _sion_file_get_position_posix | ( | int | fd | ) |
POSIX: Get the current position in file.
fd | file handle |
position | in file |
Definition at line 1238 of file sion_file.c.
_sion_fileptr* _sion_file_open | ( | const char * | fname, |
unsigned int | flags, | ||
unsigned int | addflags | ||
) |
Create and open a new file for writing.
fname | filename to use |
flags | flags |
addflags | optional additional flags |
Definition at line 41 of file sion_file.c.
References _sion_file_alloc_and_init_sion_fileptr(), _sion_file_open_ansi_read(), _sion_file_open_ansi_write_create(), _sion_file_open_ansi_write_existing(), _sion_file_open_posix_read(), _sion_file_open_posix_write_create(), _sion_file_open_posix_write_existing(), SION_FILE_FLAG_ANSI, SION_FILE_FLAG_CREATE, SION_FILE_FLAG_POSIX, SION_FILE_FLAG_READ, and SION_FILE_FLAG_WRITE.
FILE* _sion_file_open_ansi_read | ( | const char * | fname, |
unsigned int | addflags | ||
) |
ANSI: Open a file for reading.
*fname | filename to use |
addflags | optional additional flags |
Definition at line 565 of file sion_file.c.
Referenced by _sion_file_open().
FILE* _sion_file_open_ansi_write_create | ( | const char * | fname, |
unsigned int | addflags | ||
) |
ANSI: Create and open a new file for writing.
*fname | filename to use |
addflags | optional additional flags |
Definition at line 455 of file sion_file.c.
Referenced by _sion_file_open().
FILE* _sion_file_open_ansi_write_existing | ( | const char * | fname, |
unsigned int | addflags | ||
) |
ANSI: Open a new file for writing.
*fname | filename to use |
addflags | optional additional flags |
Definition at line 509 of file sion_file.c.
Referenced by _sion_file_open().
int _sion_file_open_posix_read | ( | const char * | fname, |
unsigned int | addflags | ||
) |
POSIX: Open a file for reading.
*fname | filename to use |
addflags | optional additional flags |
Definition at line 1059 of file sion_file.c.
Referenced by _sion_file_open().
int _sion_file_open_posix_write_create | ( | const char * | fname, |
unsigned int | addflags | ||
) |
POSIX: Create and open a new file for writing.
*fname | filename to use |
addflags | optional additional flags |
Definition at line 985 of file sion_file.c.
Referenced by _sion_file_open().
int _sion_file_open_posix_write_existing | ( | const char * | fname, |
unsigned int | addflags | ||
) |
POSIX: Open a new file for writing.
*fname | filename to use |
addflags | optional additional flags |
Definition at line 1022 of file sion_file.c.
Referenced by _sion_file_open().
int _sion_file_purge | ( | _sion_fileptr * | sion_fileptr | ) |
Purge data to file.
sion_fileptr | fileptr |
Definition at line 328 of file sion_file.c.
int _sion_file_purge_ansi | ( | FILE * | fileptr | ) |
ANSI: Purge the data to the disk.
*fileptr | file handle |
1 | if OK |
Definition at line 863 of file sion_file.c.
int _sion_file_purge_posix | ( | int | fd | ) |
POSIX: Purge the data to the disk.
Purge is only relevant for ANSI, using fsync instead
fd | file descriptor |
1 | if OK |
Definition at line 1331 of file sion_file.c.
sion_int64 _sion_file_read | ( | void * | data, |
sion_int64 | bytes, | ||
_sion_fileptr * | sion_fileptr | ||
) |
Read data from file.
data | pointer to data |
bytes | number of bytes to write |
sion_fileptr | file handle |
Definition at line 169 of file sion_file.c.
References _sion_file_read_ansi(), _sion_file_read_posix(), SION_FILE_FLAG_ANSI, SION_FILE_FLAG_POSIX, and SION_FILE_FLAG_SCNDANSI.
sion_int64 _sion_file_read_ansi | ( | void * | data, |
sion_int64 | bytes, | ||
FILE * | fileptr | ||
) |
ANSI: Read data from file.
data | pointer to data |
bytes | number of bytes to write |
fileptr | file handle |
Definition at line 955 of file sion_file.c.
Referenced by _sion_file_read().
sion_int64 _sion_file_read_posix | ( | void * | data, |
sion_int64 | bytes, | ||
int | fd | ||
) |
POSIX: Read data from file.
data | pointer to data |
bytes | number of bytes to write |
fd | file handle |
Definition at line 1404 of file sion_file.c.
Referenced by _sion_file_read().
int _sion_file_set_buffer | ( | _sion_fileptr * | sion_fileptr, |
char * | buffer, | ||
sion_int32 | buffer_size | ||
) |
Set buffer of fp.
*sion_fileptr | file handle |
*buffer | pointer buffer |
*buffer_size | buffer size |
SION_SUCCESS | if OK |
Definition at line 358 of file sion_file.c.
int _sion_file_set_buffer_ansi | ( | FILE * | fileptr, |
char * | buffer, | ||
sion_int32 | buffer_size | ||
) |
ANSI: set buffer of fp.
*fileptr | file handle |
*buffer | pointer buffer |
*buffer_size | buffer size |
SION_SUCCESS | if OK |
Definition at line 899 of file sion_file.c.
int _sion_file_set_buffer_posix | ( | int | fd, |
char * | buffer, | ||
sion_int32 | buffer_size | ||
) |
POSIX: set buffer of fd.
fd | file descriptor |
*buffer | pointer buffer |
*buffer_size | buffer size |
1 | if OK |
Definition at line 1356 of file sion_file.c.
sion_int64 _sion_file_set_position | ( | _sion_fileptr * | sion_fileptr, |
sion_int64 | startpointer | ||
) |
Set new position in file.
sion_fileptr | fileptr |
startpointer | new position |
Definition at line 239 of file sion_file.c.
sion_int64 _sion_file_set_position_ansi | ( | FILE * | fileptr, |
sion_int64 | startpointer | ||
) |
ANSI: Set the start position for the current task.
*fileptr | file handle |
startpointer | the position for the current task |
Definition at line 677 of file sion_file.c.
sion_int64 _sion_file_set_position_posix | ( | int | fd, |
sion_int64 | startpointer | ||
) |
POSIX: Set the start position for the current task.
fd | file descriptor |
startpointer | the position for the current task |
Definition at line 1157 of file sion_file.c.
int _sion_file_set_second_fileptr | ( | _sion_fileptr * | sion_fileptr, |
FILE * | fileptr | ||
) |
Set second fileptr for file if opened with ANSI.
sion_fileptr | file handle |
fileptr | second file pointer |
Definition at line 385 of file sion_file.c.
int _sion_file_stat_file | ( | const char * | fname | ) |
Check if file exists (LARGE_FILE support on BlueGene)
*fname | filename to use |
Definition at line 210 of file sion_file.c.
int _sion_file_unset_second_fileptr | ( | _sion_fileptr * | sion_fileptr | ) |
Unset second fileptr for file if opened with ANSI.
sion_fileptr | file handle |
Definition at line 405 of file sion_file.c.
sion_int64 _sion_file_write | ( | const void * | data, |
sion_int64 | bytes, | ||
_sion_fileptr * | sion_fileptr | ||
) |
Write data to file.
data | pointer to data |
bytes | number of bytes to write |
sion_fileptr | file handle |
Definition at line 148 of file sion_file.c.
References _sion_file_write_ansi(), _sion_file_write_posix(), SION_FILE_FLAG_ANSI, SION_FILE_FLAG_POSIX, and SION_FILE_FLAG_SCNDANSI.
sion_int64 _sion_file_write_ansi | ( | const void * | data, |
sion_int64 | bytes, | ||
FILE * | fileptr | ||
) |
ANSI: Write data to file.
data | pointer to data |
bytes | number of bytes to write |
fileptr | file handle |
Definition at line 928 of file sion_file.c.
Referenced by _sion_file_write().
sion_int64 _sion_file_write_posix | ( | const void * | data, |
sion_int64 | bytes, | ||
int | fd | ||
) |
POSIX: Write data to file.
data | pointer to data |
bytes | number of bytes to write |
fd | file handle |
Definition at line 1377 of file sion_file.c.
Referenced by _sion_file_write().
char* _sion_fileptrflags_to_str | ( | unsigned int | flag | ) |
Definition at line 1454 of file sion_file.c.
char* _sion_get_fileptr_desc | ( | _sion_fileptr * | sion_fileptr | ) |
Definition at line 1470 of file sion_file.c.
References SION_FILE_FLAG_ANSI, SION_FILE_FLAG_CREATE, SION_FILE_FLAG_POSIX, and SION_FILE_FLAG_WRITE.