diff options
author | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-10-24 20:22:12 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-10-24 20:22:12 +0200 |
commit | 7988979a722b4cdf287b2093956a76a3f19b9897 (patch) | |
tree | d35e251d0472ceca55a2eef61cff261c8ee68fab /test/stat/stat.c |
add uClibc-ng test directory
Diffstat (limited to 'test/stat/stat.c')
-rw-r--r-- | test/stat/stat.c | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/test/stat/stat.c b/test/stat/stat.c new file mode 100644 index 0000000..4980cdd --- /dev/null +++ b/test/stat/stat.c @@ -0,0 +1,71 @@ +#include <stdio.h> +#include <string.h> +#include <fcntl.h> +#include <sys/stat.h> +#include <unistd.h> +#include <stdlib.h> + +static void print_struct_stat(char *msg, struct stat *s) +{ + printf("%s\n", msg); + /* The casts are because glibc thinks it's cool */ + printf("device : 0x%llx\n",(long long)s->st_dev); + printf("inode : %lld\n", (long long)s->st_ino); + printf("mode : 0x%llx\n",(long long)s->st_mode); + printf("nlink : %lld\n", (long long)s->st_nlink); + printf("uid : %lld\n", (long long)s->st_uid); + printf("gid : %lld\n", (long long)s->st_gid); + printf("rdev : 0x%llx\n",(long long)s->st_rdev); + printf("size : %lld\n", (long long)s->st_size); + printf("blksize : %lld\n", (long long)s->st_blksize); + printf("blocks : %lld\n", (long long)s->st_blocks); + printf("atime : %lld\n", (long long)s->st_atime); + printf("mtime : %lld\n", (long long)s->st_mtime); + printf("ctime : %lld\n", (long long)s->st_ctime); +} + +int main(int argc,char **argv) +{ + int fd, ret; + char *file; + struct stat s; + + if (argc < 2) { + fprintf(stderr, "Usage: stat FILE\n"); + exit(1); + } + file = argv[1]; + + memset(&s, 0, sizeof(struct stat)); + ret = stat(file, &s); + if(ret<0){ + perror("stat"); + exit(1); + } + print_struct_stat("\nTesting stat:", &s); + + memset(&s, 0, sizeof(struct stat)); + ret = lstat(file, &s); + if(ret<0){ + perror("lstat"); + exit(1); + } + print_struct_stat("\nTesting lstat:", &s); + + + fd = open(file, O_RDONLY); + if(fd<0){ + perror("open"); + exit(1); + } + memset(&s, 0, sizeof(struct stat)); + ret = fstat(fd,&s); + if(ret<0){ + perror("fstat"); + exit(1); + } + print_struct_stat("\nTesting fstat:", &s); + + exit(0); +} + |