#include #include #include #include #include #include #include #define RETRY 1 #define OK 0 #define FAIL -1 #define BUF_SIZE 1024 int do_api_write_direct() { int fd, wfd; int ret,wret; unsigned char *buf; char origfilePath[128] = "/tmp/nmzfs-orig/write.txt"; char filePath[128] = "/tmp/nmzfs-mnt/write.txt"; ret = posix_memalign((void **)&buf, 512, BUF_SIZE); if (ret) { perror("posix_memalign failed"); exit(1); } memset(buf, 'c', BUF_SIZE); while(1){ wfd = open(filePath, O_WRONLY | O_DIRECT | O_CREAT , 0755); if (wfd < 0){ perror("open ./direct_io.data failed"); continue; } wret = write(wfd, buf, BUF_SIZE); if (wret < 0) { close(wfd); perror("write ./direct_io.data failed"); continue; } close(wfd); } free(buf); } int main() { do_api_write_direct(); return 0 ; }