#include #include #include #include #include #include #include #include int main (int argc, char *argv[]) { int ret = -1; int fd = 0; char *filename = NULL; int loop = 0; struct stat stbuf = {0,}; char string[1024] = {0,}; if (argc > 1) filename = argv[1]; if (!filename) filename = "temp-fd-test-file"; fd = open (filename, O_RDWR|O_CREAT|O_TRUNC); if (fd < 0) { fd = 0; fprintf (stderr, "open failed : %s\n", strerror (errno)); goto out; } while (loop < 1000) { /* Use it as a mechanism to test time delays */ memset (string, 0, 1024); scanf ("%s", string); ret = write (fd, string, strlen (string)); if (ret != strlen (string)) { fprintf (stderr, "write failed : %s (%s %d)\n", strerror (errno), string, loop); goto out; } ret = write (fd, "\n", 1); if (ret != 1) { fprintf (stderr, "write failed : %s (%d)\n", strerror (errno), loop); goto out; } loop++; } fprintf (stdout, "finishing the test after %d loops\n", loop); ret = 0; out: if (fd) close (fd); return ret; }