2008-09-16 26 views
3

Açık bir dosya ile bir akışı ilişkilendirmek için fdopen kullanıyorum.Bir fdopen() bellek sızıntısına neden olabilir mi?

Dosyayı close() numaralı dosyaya açtığımda, akış otomatik olarak ayrılır ve tüm aktarım belleği işletim sistemine geri döndürülüyor mu, yoksa fdopen'd dosyasının farkında olmalı ve onu belirli bir şekilde kapatmalı mıyım?

-Adam

cevap

5

close()

bir sistem çağrısıdır. Bu, kerneldeki dosya tanımlayıcısını kapatacak, ancak FILE işaretçisini ve libc'deki kaynakları serbest bırakmayacaktır. Bunun yerine dosya tanıtıcısını kapatmakla ilgilenen FILE işaretçisinde fclose() kullanmalısınız.

-1

çekirdek bu kaynakları yönetir ve bunu (en geç işlem sonlandırma yerine) istediğinde belleği serbest bırakacak olan yakın çağrı dışındaki üzerlerinde hiçbir kontrole sahip./Allan

İlgili konular