I/O types and functions.
More...
Go to the source code of this file.
|
void | io_init (void) |
| Initialize the I/O module.
|
|
void | io_write_to_user_abort_pipe (void) |
| Write a byte to user_abort_pipe[1].
|
|
void | io_no_sparse (void) |
| Disable creation of sparse files when decompressing.
|
|
file_pair * | io_open_src (const char *src_name) |
| Open the source file.
|
|
bool | io_open_dest (file_pair *pair) |
| Open the destination file.
|
|
void | io_close (file_pair *pair, bool success) |
| Closes the file descriptors and frees possible allocated memory.
|
|
size_t | io_read (file_pair *pair, io_buf *buf, size_t size) |
| Reads from the source file to a buffer.
|
|
void | io_fix_src_pos (file_pair *pair, size_t rewind_size) |
| Fix the position in src_fd.
|
|
bool | io_seek_src (file_pair *pair, uint64_t pos) |
| Seek to the given absolute position in the source file.
|
|
bool | io_pread (file_pair *pair, io_buf *buf, size_t size, uint64_t pos) |
| Read from source file from given offset to a buffer.
|
|
bool | io_write (file_pair *pair, const io_buf *buf, size_t size) |
| Writes a buffer to the destination file.
|
|
◆ IO_BUFFER_SIZE
#define IO_BUFFER_SIZE 8192 |
◆ io_close()
Closes the file descriptors and frees possible allocated memory.
The success argument determines if source or destination file gets unlinked:
- false: The destination file is unlinked.
- true: The source file is unlinked unless writing to stdout or –keep was used.
◆ io_fix_src_pos()
void io_fix_src_pos |
( |
file_pair * | pair, |
|
|
size_t | rewind_size ) |
|
extern |
Fix the position in src_fd.
This is used when –single-thream has been specified and decompression is successful. If the input file descriptor supports seeking, this function fixes the input position to point to the next byte after the decompressed stream.
- Parameters
-
pair | File pair having the source file open for reading |
rewind_size | How many bytes of extra have been read i.e. how much to seek backwards. |
◆ io_init()
Initialize the I/O module.
◆ io_no_sparse()
void io_no_sparse |
( |
void | | ) |
|
|
extern |
Disable creation of sparse files when decompressing.
◆ io_open_dest()
Open the destination file.
◆ io_open_src()
◆ io_pread()
Read from source file from given offset to a buffer.
This is remotely similar to standard pread(). This uses lseek() though, so the read offset is changed on each call.
- Parameters
-
pair | Seekable source file |
buf | Destination buffer |
size | Amount of data to read |
pos | Offset relative to the beginning of the file, from which the data should be read. |
- Returns
- On success, false is returned. On error, error message is printed and true is returned.
◆ io_read()
Reads from the source file to a buffer.
- Parameters
-
pair | File pair having the source file open for reading |
buf | Destination buffer to hold the read data |
size | Size of the buffer; must be at most IO_BUFFER_SIZE |
- Returns
- On success, number of bytes read is returned. On end of file zero is returned and pair->src_eof set to true. On error, SIZE_MAX is returned and error message printed.
- Parameters
-
pair | File pair having the source file open for reading |
buf | Destination buffer to hold the read data |
size | Size of the buffer; assumed be smaller than SSIZE_MAX |
- Returns
- On success, number of bytes read is returned. On end of file zero is returned and pair->src_eof set to true. On error, SIZE_MAX is returned and error message printed.
◆ io_seek_src()
Seek to the given absolute position in the source file.
This calls lseek() and also clears pair->src_eof.
- Parameters
-
pair | Seekable source file |
pos | Offset relative to the beginning of the file, from which the data should be read. |
- Returns
- On success, false is returned. On error, error message is printed and true is returned.
◆ io_write()
Writes a buffer to the destination file.
- Parameters
-
pair | File pair having the destination file open for writing |
buf | Buffer containing the data to be written |
size | Size of the buffer; must be at most IO_BUFFER_SIZE |
- Returns
- On success, zero is returned. On error, -1 is returned and error message printed.
- Parameters
-
pair | File pair having the destination file open for writing |
buf | Buffer containing the data to be written |
size | Size of the buffer; assumed be smaller than SSIZE_MAX |
- Returns
- On success, zero is returned. On error, -1 is returned and error message printed.
◆ io_write_to_user_abort_pipe()
void io_write_to_user_abort_pipe |
( |
void | | ) |
|
|
extern |
Write a byte to user_abort_pipe[1].
This is called from a signal handler.