Hi Mike, TKey::ReadObj reads from the current file. In your case, you must activate (as you found out) the line infile.cd(); Rene Brun Mike Kordosky wrote: > > Hi, > > Is this a bug?: > > const string inname(argv[1]); > const string outname(argv[2]); > > TFile infile(inname.c_str(), "read"); > TFile outfile(outname.c_str(), "recreate"); > // infile.cd(); > TIter it(infile.GetListOfKeys()); > > while(TKey* key = static_cast<TKey*>(it())){ > TObject* obj = key->ReadObj(); > . > . > . > > I get errors of the form: > > Error in <TFile::ReadBuffer>: error reading all requested bytes from file > junk.root, got 0 of 318 > R__unzip: error in header > > I suppose that this is because junk.root corresponds to "outfile" above > and it has just been created. But why is it reading from the "outfile" > rather than the "infile"? Is this the desired behavior and if so, why? > > Uncommenting the line infile.cd() fixes the problem. > > I use root 3.02/07 with gcc2.95.3 on a linux pc. > > Mike Kordosky > > -- > Graduate Research Assistant // High Energy Physics Lab > kordosky@hep.utexas.edu // University of Texas at Austin > kordosky@fnal.gov // > ph: (512) 471-8426 (RLM Lab, Office) > (512) 475-8673 (ENS Lab)
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:53 MET