summaryrefslogtreecommitdiffstats
path: root/src/io.c
diff options
context:
space:
mode:
authorGravatar Gediminas Jakutis <gediminas@varciai.lt> 2020-03-27 14:40:33 +0200
committerGravatar Gediminas Jakutis <gediminas@varciai.lt> 2020-03-27 14:40:33 +0200
commit7754455c48c50764ad7291ea508109c53b60517f (patch)
treef8b3f0fe7ad2509ff8c40a998cde91f8f7353f80 /src/io.c
parent8b4c2c3194dbf9b18ecf475597d257ee7125a1e1 (diff)
downloadalgos-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.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/io.c b/src/io.c
index 9fdad38..688ec35 100644
--- a/src/io.c
+++ b/src/io.c
@@ -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);