#include #include static struct Flags { uchar a : 1; /* show all files */ uchar r : 1; /* reverse sort */ uchar v : 1; /* print detailed information */ uchar h : 1; /* human readable */ uchar s : 1; /* sort by size */ } flag; static void usage(void) { fputs("usage: ls [-ahsrv] [file ...]\n", stderr); exit(1); } int main(int argc, char *argv[]) { int i; ARGBEGIN{ case 'a': flag.a++; break; default: usage(); }ARGEND; switch(argc) { case 0: *--argv = ".", ++argc; /* fallthrough */ case 1: } }