diff options
author | 2020-03-27 14:40:33 +0200 | |
---|---|---|
committer | 2020-03-27 14:40:33 +0200 | |
commit | 7754455c48c50764ad7291ea508109c53b60517f (patch) | |
tree | f8b3f0fe7ad2509ff8c40a998cde91f8f7353f80 /src/io.c | |
parent | 8b4c2c3194dbf9b18ecf475597d257ee7125a1e1 (diff) | |
download | algos-ld1-7754455c48c50764ad7291ea508109c53b60517f.tar.gz algos-ld1-7754455c48c50764ad7291ea508109c53b60517f.tar.bz2 algos-ld1-7754455c48c50764ad7291ea508109c53b60517f.zip |
cache I/O implementation and fixes.
Signed-off-by: Gediminas Jakutis <gediminas@varciai.lt>
Diffstat (limited to 'src/io.c')
-rw-r--r-- | src/io.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -45,7 +45,7 @@ int stream_close(struct stream * const in) try(!in || in->fd < 0, early_err, EINVAL, "invalid argunent"); - if (!in->out) { + if (in->out != 1) { goto out; } @@ -135,9 +135,15 @@ static int stream_open_special(struct stream * const in) int ret = 0; try(stat(in->name, &st), err, errno, "stat failed: %s", strerror(ret)); - in->fd = open(in->name, O_RDONLY | O_NOATIME); + in->fd = open(in->name, O_RDONLY); try(in->fd < 0, err, errno, "failed opening input file: %s", strerror(ret)); err: return ret; } + +int direct_get_array(struct stream * const restrict in, ssize_t idx, struct entry_l * const data); +int direct_get_list(struct stream * const restrict in, ssize_t idx, struct entry_l * const data); + +int direct_put_array(struct stream * const restrict in, ssize_t idx, const struct entry_l * const data); +int direct_put_list(struct stream * const restrict in, ssize_t idx, const struct entry_l * const data); |