#include extern int errno;
int main(int argc,char* argv[]) {
struct stat buf1,buf2,buf3,buf4;
if (argc!= 4) {
printf("Usage: link_exam oldfile linkfn symlinkfn\n");
exit(1);
}
if (link(argv[1],argv[2])==-1) {
printf("link error\nErrno= %d\n", errno);
}
if (symlink(argv[1],argv[3])==-1) {
printf("symlink error\nErrno= %d\n", errno);
}
if((stat(argv[2],&buf1) == -1)|(stat(argv[3],&buf2) == -1)) {
printf("star error\nerrno is %d\n",errno);
exit(1);
}
printf("使用stat()显示文件%s和%s的信息\n",argv[2],argv[3]);
printf("%s大小-->%d\n",argv[2],(int)buf1.st_size);
printf("%s大小-->%d\n",argv[3],(int)buf2.st_size);
printf("%s索引节点号-->%d\n",argv[2],(int)buf1.st_ino);
printf("%s索引节点号-->%d\n",argv[3],(int)buf2.st_ino);
printf("%s权限-->%d\n",argv[2],(int)buf1.st_mode);
printf("%s权限-->%d\n",argv[3],(int)buf2.st_mode);
printf("%s文件所在设备号-->%d\n",argv[2],(int)buf1.st_dev);
printf("%s文件所在设备号-->%d\n",argv[3],(int)buf2.st_dev);
printf("%s最后一次修改时间-->%d\n",argv[2],(int)buf1.st_mtime);
printf("%s最后一次修改时间-->%d\n",argv[3],(int)buf2.st_mtime);
printf("****######@@@@@@&&&& STAT END &&&&@@@@@@****\n");
if((lstat(argv[2],&buf3) == -1)|(lstat(argv[3],&buf4) == -1)) {
printf("lstar error\nerrno is %d\n",errno);
exit(1);
}
printf("--------------------------------------------------\n");
printf("使用lstat()显示文件%s和%s的信息\n",argv[2],argv[3]);
printf("%s大小是-->%d\n",argv[2],(int)buf3.st_size);
printf("%s大小是-->%d\n",argv[3],(int)buf4.st_size);
printf("%s索引节点号-->%d\n",argv[2],(int)buf3.st_ino);
printf("%s索引节点号-->%d\n",argv[3],(int)buf4.st_ino);
printf("%s权限-->%d\n",argv[2],(int)buf3.st_mode);
printf("%s权限-->%d\n",argv[3],(int)buf4.st_mode);
printf("%s文件所在设备号-->%d\n",argv[2],(int)buf3.st_dev);
printf("%s文件所在设备号-->%d\n",argv[3],(int)buf4.st_dev);
printf("%s最后一次修改时间-->%d\n",argv[2],(int)buf3.st_mtime);
printf("%s最后一次修改时间-->%d\n",argv[3],(int)buf4.st_mtime);
printf("****######@@@@@@&&&& LSTAT END &&&&@@@@@@****\n");
}
3