Given a file, I want to check if this is a DLL, or a shared object (Linux) or a dylib (Mac OS X), or something different. My main interest is differentiating executable and DLL on Linux and Mac OS X. For windows, the extension should be enough for my problem.
I already checked that the magic number technique doesn't work for Linux as executable and shared objects both have the same number.