diff options
| author | Franklin Wei <git@fwei.tk> | 2016-01-25 16:10:46 -0500 |
|---|---|---|
| committer | Franklin Wei <git@fwei.tk> | 2016-01-25 16:10:46 -0500 |
| commit | a1acf425cfb00a41c7862c915eb024207658c814 (patch) | |
| tree | fcee7cf8a1c204b779ab50a3545e8671012d7643 /src/util.c | |
| parent | d351bb34ba256d6fbf0869485bcf75ec46646e74 (diff) | |
| download | netcosm-a1acf425cfb00a41c7862c915eb024207658c814.zip netcosm-a1acf425cfb00a41c7862c915eb024207658c814.tar.gz netcosm-a1acf425cfb00a41c7862c915eb024207658c814.tar.bz2 netcosm-a1acf425cfb00a41c7862c915eb024207658c814.tar.xz | |
inventory works
Diffstat (limited to 'src/util.c')
| -rw-r--r-- | src/util.c | 48 |
1 files changed, 48 insertions, 0 deletions
@@ -66,3 +66,51 @@ void all_lower(char *s) s++; } } + +void write_roomid(int fd, room_id *id) +{ + write(fd, id, sizeof(*id)); +} + +void write_string(int fd, const char *str) +{ + size_t len = strlen(str); + write(fd, &len, sizeof(len)); + write(fd, str, len); +} + +room_id read_roomid(int fd) +{ + room_id ret; + if(read(fd, &ret, sizeof(ret)) < 0) + return ROOM_NONE; + return ret; +} + +char *read_string(int fd) +{ + size_t sz; + read(fd, &sz, sizeof(sz)); + char *ret = malloc(sz + 1); + if(read(fd, ret, sz) < 0) + { + free(ret); + return NULL; + } + ret[sz] = '\0'; + return ret; +} + +bool read_bool(int fd) +{ + bool ret; + if(read(fd, &ret, sizeof(ret)) != sizeof(ret)) + error("unexpected EOF"); + return ret; +} + +void write_bool(int fd, bool b) +{ + if(write(fd, &b, sizeof(b)) != sizeof(b)) + error("write failed"); +} |