diff options
author | Michael I. Bushnell <mib@gnu.org> | 1993-12-11 07:06:57 +0000 |
---|---|---|
committer | Michael I. Bushnell <mib@gnu.org> | 1993-12-11 07:06:57 +0000 |
commit | 24a49cd1981d37c235a5a2bc86cac7dc8eb9aaf7 (patch) | |
tree | 9149baacceded0dfdf17f013f2956a4a9920b9c2 /fstests | |
parent | 530c4bee649c220d39ce93c48b3a36fea4880cdf (diff) |
Formerly fstests.c.~5~
Diffstat (limited to 'fstests')
-rw-r--r-- | fstests/fstests.c | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/fstests/fstests.c b/fstests/fstests.c index 9c90281c..05d3af10 100644 --- a/fstests/fstests.c +++ b/fstests/fstests.c @@ -25,34 +25,35 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <hurd/fs.h> #include <hurd/io.h> #include <hurd.h> +#include <fcntl.h> void main () { - file_t root, filetoprint; + file_t filetowrite; retry_type retry; - char buf[1024], *bp; - int buflen; char pathbuf[1024]; extern file_t *_hurd_init_dtable; - + char string[] = "Did this get into the file?\n"; + int written; + int err; + mach_port_t root; + + root = _hurd_ports[INIT_PORT_CRDIR].port; stdout = mach_open_devstream (_hurd_init_dtable[1], "w"); - root = _hurd_ports[INIT_PORT_CRDIR].port; - dir_pathtrans (root, "README", FS_LOOKUP_READ, 0, &retry, pathbuf, - &filetoprint); - - do - { - bp = buf; - buflen = 10; - io_read (filetoprint, &bp, &buflen, -1, 10); - bp[buflen] = '\0'; - printf ("%s", bp); - if (bp != buf) - vm_deallocate (mach_task_self (), (vm_address_t) bp, buflen); - } - while (buflen); + err = dir_pathtrans (root, "CREATED", O_WRITE | O_CREAT, 0666, &retry, + pathbuf, &filetowrite); + + if (err) + printf ("Error on pathtrans: %d\n", err); + else if (err = io_write (filetowrite, string, strlen (string), -1, &written)) + printf ("Error on write: %d\n", err); + else if (written != strlen (string)) + printf ("Short write: %d\n"); + else if (err = file_syncfs (filetowrite, 1, 0)) + printf ("Error on sync: %d\n", err); + printf ("All done.\n"); malloc (0); } |