[Gambas-user] Too many open files error message
Doriano Blengino
doriano.blengino at ...1909...
Tue May 4 22:26:01 CEST 2010
Benoît Minisini ha scritto:
>> This routine is called by my program, consecutively a large number of times
>> during an automated process:
>>
>> Public Sub Display_HTML(sHTML As String, wb As WebView, Optional prefix As
>> String = "html")
>>
>> Dim wFile As File
>> Dim sFilename As String
>>
>> sFilename = Temp$(prefix) & ".html"
>> wfile = Open sFilename For Write Create
>> Print #wfile, sHTML
>> Close #wfile
>> wb.url = sFilename
>> End
>>
>> the temp file is opened-closed.
>>
>> Yet at a certain point gambas comes up with an error 24: too many opened
>> files. Does this mean the temp-file quota has somehow been exceeded?
>>
>> It makes no difference if I put in a fixed name like this:
>>
>> sfilename = "/home/richard/temp.html"
>>
>> Same result > it eventually bugs out. and complains
>> Regards
>>
>> Richard
>>
>>
>
> Apparently you close the file you wrote, so maybe the problem comes from
> elsewhere.
>
> You can check which files you are really open by using "strace". Enter the
> directory of your project, and type "strace gbx2" (or "strace gbx3" if you use
> Gambas 3). All system calls will be printed, and you can analyze the output to
> see when the open() and close() system calls are used.
>
> You can check too your project, by printing a debugging message when you open
> a file and when you close it, to see if you didn't forget to do that. Note
> that a file is automatically closed when the File object is released.
>
> I can't say more at the moment without more information. I'm not sure it is a
> Gambas bug.
>
>
You can also go with lsof(1) - perhaps it is simpler: when your program
complains, do a ps ax, and note the PID of the program, then do a lsof
-p PID to see all the open files of your program.
Regards,
Doriano
More information about the User
mailing list