[PLUG] Closing sockets using atexit C code.
michael
michael at robinson-west.com
Tue Nov 14 21:33:30 UTC 2017
Thank you. Another question, how can I tell if the program opening
sockets is crashing enough times to cause problems for other processes?
My hypothesis is that this program opens 3 sockets and crashes, sockets
linger for a while. Do this n times, the Pi starts to have problems.
If the Pi is resource starved, that will affect the NFS server running
on it.
On 2017-11-14 12:48, John Meissen wrote:
> Sockets are just file descriptors. All file descriptors should be
> closed
> automatically as part of the process termination cleanup that the
> system does.
>
> While it's good practice to handle these sorts of things they will
> happen
> automatically if you don't.
>
>> In C there is an atexit function that takes no arguments. Because of
>> this, you can't pass in the
>> file descriptors for your sockets. Uge! Short of making these
>> integers
>> global, how can I close
>> these sockets on premature program termination?
>>
>> int client=0,server=0;
>>
>> void exiting()
>> {
>> close(client);
>> close(server);
>> }
>>
>> int main(void)
>> {
>> atexit(exiting);
>>
>> struct sockaddr...
>> }
>>
>> Note that there are a bunch of includes for TCP sockets and a lot more
>> code.
>> _______________________________________________
>> PLUG mailing list
>> PLUG at pdxlinux.org
>> http://lists.pdxlinux.org/mailman/listinfo/plug
>
>
> _______________________________________________
> PLUG mailing list
> PLUG at pdxlinux.org
> http://lists.pdxlinux.org/mailman/listinfo/plug
More information about the PLUG
mailing list