![]() |
SIONlib
1.7.2
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 <errno.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 | _XOPEN_SOURCE 700 |
| #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 (void) |
| 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 | ( | void | ) |
Create and return _sion_fileptr.
Definition at line 967 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 |
SION_SUCCESS if success Definition at line 109 of file sion_file.c.
| int _sion_file_close_ansi | ( | FILE * | fileptr | ) |
ANSI: Close a file.
| *fileptr | ANSI file pointer |
SION_SUCCESS or SION_NOT_SUCCESS Definition at line 463 of file sion_file.c.
| int _sion_file_close_posix | ( | int | fd | ) |
POSIX: Close a file.
| fd | POSIX file pointer |
SION_SUCCESS or SION_NOT_SUCCESS Definition at line 742 of file sion_file.c.
| int _sion_file_flush | ( | _sion_fileptr * | sion_fileptr | ) |
Flush data to file.
| sion_fileptr | fileptr |
SION_SUCCESS if ok Definition at line 263 of file sion_file.c.
| int _sion_file_flush_ansi | ( | FILE * | fileptr | ) |
ANSI: Flush the data to the disk.
| *fileptr | file handle |
| <tt>SION_SUCCESS</tt> | if OK |
Definition at line 597 of file sion_file.c.
Referenced by _sion_file_purge_ansi().
| int _sion_file_flush_posix | ( | int | fd | ) |
POSIX: Flush the data to the disk.
| fd | file descriptor |
| <tt>SION_SUCCESS</tt> | if OK |
Definition at line 845 of file sion_file.c.
| int _sion_file_get_fd | ( | _sion_fileptr * | sion_fileptr | ) |
Utility function: Get POSIX fp.
| sion_fileptr | file handle |
SION_ID_UNDEF on failure Definition at line 376 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 |
-1 if not defined Definition at line 187 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 |
-1 if not defined Definition at line 478 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 |
-1 if not defined Definition at line 757 of file sion_file.c.
| sion_int64 _sion_file_get_position | ( | _sion_fileptr * | sion_fileptr | ) |
Get new position in file.
| sion_fileptr | fileptr |
-1 on failure Definition at line 241 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, -1 on failure |
Definition at line 554 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 or -1 on failure |
Definition at line 817 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 |
NULL on error Definition at line 42 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_FLAG_ANSI, SION_FILE_FLAG_CREATE, 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 |
NULL Definition at line 445 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 |
NULL Definition at line 403 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 |
NULL Definition at line 422 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 |
-1 on failure Definition at line 717 of file sion_file.c.
| 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 |
-1 on failure Definition at line 665 of file sion_file.c.
| 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 |
-1 on failure Definition at line 691 of file sion_file.c.
| int _sion_file_purge | ( | _sion_fileptr * | sion_fileptr | ) |
Purge data to file.
| sion_fileptr | fileptr |
SION_SUCCESS if ok Definition at line 285 of file sion_file.c.
| int _sion_file_purge_ansi | ( | FILE * | fileptr | ) |
ANSI: Purge the data to the disk.
| *fileptr | file handle |
| <tt>SION_SUCCESS</tt> | if OK |
Definition at line 607 of file sion_file.c.
References _sion_file_flush_ansi().
| 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 |
| <tt>SION_SUCCESS</tt> | if OK |
Definition at line 868 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 |
bytes if the requested amount could be read, on EOF, returns n with 0 <= n < bytes, otherwise -1 Definition at line 166 of file sion_file.c.
| 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 read |
| fileptr | file handle |
bytes if the requested amount could be read, on EOF, returns n with 0 <= n < bytes, otherwise -1 Definition at line 646 of file sion_file.c.
| 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 read |
| fd | file handle |
bytes if the requested amount could be read, on EOF, returns n with 0 <= n < bytes, otherwise -1 Definition at line 937 of file sion_file.c.
| 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 |
| <tt>SION_SUCCESS</tt> | if OK |
Definition at line 309 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 |
| <tt>SION_SUCCESS</tt> | if OK |
Definition at line 619 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 |
| <tt>SION_SUCCESS</tt> | if OK |
Definition at line 891 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 |
-1 on failure Definition at line 219 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 |
-1 on failure Definition at line 500 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 |
-1 on failure Definition at line 778 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 |
SION_SUCCESS if success Definition at line 332 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 |
0 or 1 Definition at line 205 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 |
SION_SUCCESS if success Definition at line 354 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 |
bytes if the requested amount could be written, otherwise -1 Definition at line 141 of file sion_file.c.
| 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 |
bytes if the requested amount could be written, otherwise -1 Definition at line 632 of file sion_file.c.
| 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 |
bytes if the requested amount could be written, otherwise -1 Definition at line 904 of file sion_file.c.
| char* _sion_fileptrflags_to_str | ( | unsigned int | flag | ) |
Definition at line 988 of file sion_file.c.
| char* _sion_get_fileptr_desc | ( | _sion_fileptr * | sion_fileptr | ) |
Definition at line 1003 of file sion_file.c.
References SION_FILE_FLAG_ANSI, SION_FILE_FLAG_CREATE, SION_FILE_FLAG_POSIX, and SION_FILE_FLAG_WRITE.
1.8.15