#include #include #include #include #include void do_ls(const char *file) { struct stat st; if (stat(file, &st)) printf("%s does not exist\n", file); else printf("mode of %s: %o\n", file, st.st_mode); } int main(int argc, char *argv[]) { const char *file = argc > 1 ? argv[1] : "foo"; int fd; unlink(file); do_ls(file); fd = open(file, O_RDWR|O_CREAT|O_EXCL, 04540); close(fd); do_ls(file); fd = open(file, O_WRONLY|O_CREAT|O_TRUNC, 0777); write(fd, "moo", 3); close(fd); do_ls(file); unlink(file); return 0; }