I need to log socket usage, and I wrote a LD_PRELOAD library.
The problem is when I override read() and write() than ordinary file operations are get logged too (of course).
So how can I tell ordinary file descriptors and socket descriptors apart?
Call fstat
on the descriptor and use the S_ISSOCK macro on the result.
struct stat statbuf;
fstat(fd, &statbuf);
S_ISSOCK(statbuf.st_mode);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With