1*368c31abSDavid du Colombier #include "stdinc.h" 2*368c31abSDavid du Colombier #include "dat.h" 3*368c31abSDavid du Colombier #include "fns.h" 4*368c31abSDavid du Colombier 5*368c31abSDavid du Colombier void usage(void)6*368c31abSDavid du Colombierusage(void) 7*368c31abSDavid du Colombier { 8*368c31abSDavid du Colombier fprint(2, "usage: readifile file\n"); 9*368c31abSDavid du Colombier threadexitsall("usage"); 10*368c31abSDavid du Colombier } 11*368c31abSDavid du Colombier 12*368c31abSDavid du Colombier void threadmain(int argc,char * argv[])13*368c31abSDavid du Colombierthreadmain(int argc, char *argv[]) 14*368c31abSDavid du Colombier { 15*368c31abSDavid du Colombier IFile ifile; 16*368c31abSDavid du Colombier 17*368c31abSDavid du Colombier ARGBEGIN{ 18*368c31abSDavid du Colombier default: 19*368c31abSDavid du Colombier usage(); 20*368c31abSDavid du Colombier }ARGEND 21*368c31abSDavid du Colombier 22*368c31abSDavid du Colombier if(argc != 1) 23*368c31abSDavid du Colombier usage(); 24*368c31abSDavid du Colombier 25*368c31abSDavid du Colombier if(readifile(&ifile, argv[0]) < 0) 26*368c31abSDavid du Colombier sysfatal("readifile %s: %r", argv[0]); 27*368c31abSDavid du Colombier write(1, ifile.b->data, ifile.b->len); 28*368c31abSDavid du Colombier threadexitsall(nil); 29*368c31abSDavid du Colombier } 30