#include #include #include #include #include #include #include char buf[] = "abcdefghijkABCDEFGHIJK"; #define FILENAME "test_windows_file" int main (void) { int fd; int status; fd = creat (FILENAME, (S_IWRITE|S_IREAD)); if (-1 == fd) { printf ("\n\nError creating %s:\n", FILENAME); perror(0); return -1; } #ifdef __CYGWIN__ fd = open (FILENAME, (O_RDWR|O_BINARY), (S_IREAD|S_IWRITE)); #endif #ifndef __CYGWIN__ fd = open (FILENAME, O_RDWR, (S_IREAD|S_IWRITE)); #endif if (-1 == fd) { printf ("\n\nError opening %s:\n", FILENAME); perror(0); return -1; } status = write (fd, buf, 20); if (status != 20) { printf ("\n\nError writing to %s\n", FILENAME); return -1; } status = close (fd); if (0 != status) { printf ("\n\nError closing %s\n", FILENAME); return -1; } status = remove (FILENAME); if (-1 == status) { printf ("\n\nError removing %s\n", FILENAME); return -1; } fd = 0; fd = creat (FILENAME, (S_IWRITE|S_IREAD)); if (-1 == fd) { printf ("\n\nError creating %s again:\n", FILENAME); perror(0); return -1; } fd = open (FILENAME, (O_RDWR|O_BINARY), (S_IREAD|S_IWRITE)); if (-1 == fd) { printf ("\n\nError opening %s:\n", FILENAME); perror(0); return -1; } status = write (fd, buf, 20); if (status != 20) { printf ("\n\nError writing to %s\n", FILENAME); return -1; } status = write (fd, "\n", 1); if (status != 1) { printf ("\n\nError writing to %s\n", FILENAME); return -1; } status = write (fd, buf, 20); if (status != 20) { printf ("\n\nError writing to %s\n", FILENAME); return -1; } status = close (fd); if (0 != status) { printf ("\n\nError closing %s again\n", FILENAME); return -1; } return 0; }