#include #include #include #include #include #include #include #include int main (int argc, char **argv) { int fd; struct sockaddr_un addr; socklen_t addrlen; char buf[100]; struct stat st; /* creating test unix domain socket pipe */ fd = socket(AF_UNIX, SOCK_DGRAM, 0); /* SOCK_DGRAM require this to bind */ bzero((char *)&addr, sizeof(addr)); /* fill in addr structire */ addr.sun_family = AF_UNIX; strcpy(addr.sun_path, "pipe.101"); addrlen = sizeof(addr.sun_family) + strlen(addr.sun_path) + 1; /* unlink old socket file */ unlink(addr.sun_path); /* bind socket to special file named pipe.100 in current directory */ bind(fd, (struct sockaddr *)&addr, addrlen); printf ("STAT : \"%s\"\n", addr.sun_path); if (!stat (addr.sun_path, &st)) { printf ("st_dev : 0x%x\n", st.st_dev); printf ("st_ino : %lu\n", st.st_ino); printf ("st_mode : 0%o\n", st.st_mode); printf ("st_nlink : %d\n", st.st_nlink); printf ("st_uid : %d\n", st.st_uid); printf ("st_gid : %d\n", st.st_gid); printf ("st_rdev : 0x%x\n", st.st_rdev); printf ("st_size : %ld\n", st.st_size); printf ("st_blksize: %ld\n", st.st_blksize); printf ("st_blocks : %ld\n", st.st_blocks); printf ("st_ctime : %ld\n", st.st_ctime); printf ("st_mtime : %ld\n", st.st_mtime); printf ("st_atime : %ld\n", st.st_atime); } printf ("FSTAT : \"%s\"\n", addr.sun_path); if (!fstat (fd, &st)) { printf ("st_dev : 0x%x\n", st.st_dev); printf ("st_ino : %lu\n", st.st_ino); printf ("st_mode : 0%o\n", st.st_mode); printf ("st_nlink : %d\n", st.st_nlink); printf ("st_uid : %d\n", st.st_uid); printf ("st_gid : %d\n", st.st_gid); printf ("st_rdev : 0x%x\n", st.st_rdev); printf ("st_size : %ld\n", st.st_size); printf ("st_blksize: %ld\n", st.st_blksize); printf ("st_blocks : %ld\n", st.st_blocks); printf ("st_ctime : %ld\n", st.st_ctime); printf ("st_mtime : %ld\n", st.st_mtime); printf ("st_atime : %ld\n", st.st_atime); } return 0; }