> > Everything is a file descriptor. Open files, sockets, loaded frameworks & > bundles, even STDIN/OUT/ERROR. > > You can check if you're hitting the limit of file descriptors by > (temporarily) raising the number you can have open with setrlimit(). If you > raise it and your app stops crashing, then that's likely the culprit. I would > guess so - the default max number you can have open is 256, and 0xfe lines up > with that... > > If your app runs long enough before crashing, you can also use lsof in > Terminal to see what your app has open. >
Where do you get 256 from? I just inserted the following two lines of code into a random OSX GUI app and a command line tool I wrote, right after launch struct rlimit file_limit; getrlimit( RLIMIT_NOFILE, &file_limit ); For the GUI app I get file_limit.rlim_cur = 9472 and for the command line I get file_limit.rlim_cur = 7168 when run from Xcode or 2560 in either case when run from the command line or double-clicked from the finder. all of which seems to indicate processes have plenty more than 256 file descriptors available by default. I thought 256 was left behind as a default long ago because it was way too small. If I’m in a bash shell and run ulimit -n I get 2560 launchctl limit shows maxfiles 256 unlimited That’s the only place I can find 256 and I don’t know when that is used. Finally sysctl kern.maxfilesperproc returns 10240 which I think is the absolute hard limit on the number of file handles any process can have available. _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com