X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=src%2Fx.c;h=dc5c1dd38e807ee300f9a1d77cc1ef187ef79f7d;hb=e2c8706061d31d48f9516297d118d230354a5949;hp=18c69a47457bf786aa9899999ed419ea96cdb4dd;hpb=ded32923a25488449be27687013845d7fa0e9e5e;p=ttt diff --git a/src/x.c b/src/x.c index 18c69a4..dc5c1dd 100644 --- a/src/x.c +++ b/src/x.c @@ -151,6 +151,9 @@ xstrdup (const char *s) { char *ret; + if (s == NULL) + return NULL; + ret = strdup (s); if (ret == NULL) { @@ -248,3 +251,33 @@ xselect (int n, return ret; } + +ssize_t +xread (int fd, void *buf, size_t count) +{ + int ret; + + ret = read (fd, buf, count); + if (ret == -1) { + fprintf (stderr, "Error: read failed: %s. Aborting.\n", + strerror (errno)); + exit (1); + } + + return ret; +} + +ssize_t +xwrite (int fd, const void *buf, size_t count) +{ + int ret; + + ret = write (fd, buf, count); + if (ret == -1) { + fprintf (stderr, "Error: write failed: %s. Aborting.\n", + strerror (errno)); + exit (1); + } + + return ret; +}