int main( int argc, char **argv ) { int i=0; while ( (++i<argc) && (*argv[i] == '-') ) if ( getopts(argv[i]+1) ) return 1; if ( !opt ) opt |= O_KERN; return printuname(); }
void plong(FTSENT *p) { char tmp[NAME_BUFSZ]; FTSENT_PRT *prt=(FTSENT_PRT*)p->fts_pointer; int length=prt->s_name; if (f_inodenum) printf("%*lld ", prt->s_inode, (LL)p->fts_statp->st_ino); if (f_dispblock) { LL b=p->fts_statp->st_blocks; b/=block_size_factor; printf("%*lld ", prt->s_block, b); } printmodestr(p); printf("%*hd ", prt->s_link, (short)p->fts_statp->st_nlink); if (f_numric) { printf("%*d ", prt->s_uid, (int)p->fts_statp->st_uid); printf("%*d ", prt->s_gid, (int)p->fts_statp->st_gid); } else { if (printuname(p, prt->s_uname)==-1) printf("%*d ", prt->s_uid, (int)p->fts_statp->st_uid); if (printgname(p, prt->s_gname)==-1) printf("%*d ", prt->s_gid, (int)p->fts_statp->st_gid); } printsize(p); if (f_sortbyacc) printtime(p->fts_statp->st_atime); else if (f_sortbychg) printtime(p->fts_statp->st_ctime); else printtime(p->fts_statp->st_mtime); if (f_displgd) { sprintf(tmp, "%s%c", p->fts_name, type(p)); length++; } else sprintf(tmp, "%s", p->fts_name); printstr(tmp, length); if (S_ISLNK(p->fts_statp->st_mode)) { int l; char buf[NAME_BUFSZ], path[NAME_BUFSZ]; if (p->fts_level==0) sprintf(path, "%s", p->fts_name); else sprintf(path, "%s/%s", p->fts_parent->fts_accpath, p->fts_name); if ((l=readlink(path, buf, sizeof(path)))==-1) warn("%s", p->fts_path); buf[l]='\0'; printf(" -> "); printstr(buf, prt->s_name); } }