Following an interview question that was extremely hard I went to `man lstat’ and tried to code up a test just based on system documentation. It was not entirely successful, however after a tip-off from an online resource I came up with this.
File: lstat.c
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h></p>
int main(int c, char** argv) {
struct stat buf;
lstat(argv[1],&buf);
printf("%s is %d bytes\n", argv[1],buf.st_size);
return 0;
}
When compile like this:
g++ -o lstat lstat.c
It looks like this where yep.txt is a dummy file. `user@box ~/c $ ls -l /tmp/yep.txt ls -l /tmp/yep.txt -rw-r–r– 1 user users 17 Apr 9 23:16 /tmp/yep.txt
user@box ~/c $ ./lstat /tmp/yep.txt /tmp/yep.txt is 17 bytes`
So all this does is really use stat since yep.txt is a file and not a symbolic link. This stupid test just prints out the file size which you can see by the real `ls’ above.