OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [uClibc/] [test/] [stat/] [stat.c] - Rev 1765

Compare with Previous | Blame | View Log

#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
 
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);
}
 
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.