I’m using root to produre a large file which is about 6G, but the generated file is about 1.8G and also the content is wrong.
At first, I doubt the linux system has some limitations in produre a file larger than 2G. Then I write a simple c program to produce a large file about 6G and it works. I thought if there is some limitations in root to produre a large file or if I need to do some special changes.
In addition, my command to execute function is “root -l xxx.c” and I am sure my xxx.c file is correct.
Can you post a small macro reproducing the problem ?
I add my Test.c file as the following:
Test.c (753 Bytes)
And thanks for your reply~
The Clinic*.root files are missing.
This is a sample example for explanation.
No matter what the content is and the file is excepted to be 57528896964/1024/1024≈6G. But the generated file is about 1.8G. And this is my problem.
Many thanks for your reply~
Or your could execute the following file:Test.c (621 Bytes)
this last file is basically pure C++ but the instantiation of a TChain. In other words ROOT does not seem to be the issue but rather the underlying system.
I just tried to run it as a macro on macos and the file is produced just fine. Are you sure that for example you are not on a 32-bits platform?
Yes, I am very sure my platform is 64-bits.
I wrote a C file as follows. Compiled and executed it, and the produced file is about 6G.
int main(int argc,char *argv)
memset(michelogram, 0, numLOR*sizeof(float));
fwrite(michelogram, sizeof(float), numLOR, fp);
May I ask which version is your root ? My root version is 5.34 and system is Ubuntu 14.04. Is it possible to be associated with the version?
Thanks for your reply~
Using ROOT 6 is always a good idea. I bet it will immediately fix this issues.
When you rename the
main function you wrote (say in
nochain()), and you run this in ROOT (
.x nochain.C), do you also get a 1.8GB file?
I bet CINT (the ROOT 5 interpreter) is limiting the size to
root  (575*288*96*96*sizeof(float))
(unsigned long) 6104678400
root  (int)(575*288*96*96*sizeof(float))
something that ROOT 6 would never do, thanks to its new interpreter.
I have to say you are right.
After I update the root version, the produced file could up to 6G.
I solved this problem and then I have serval other compatibility issues to solve.
It is the version problem.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.