regarding cudaFuncGetAttributes and -ptx flag

Hi all!
I used cudaFuncGetAttributes(…) to get some information about the maximum number of thread per block and so on.
My question is “Is the function reliable??”

I invoke a cuda kernel with 256 threads per block but the result from cudaFuncGetAttributes is 384.
I tested the cudaFuncGetAttributes with another cuda kernel having 256 threads per block, but the result is 320.
However, with another cuda kernel with 512 threads per block, it gives me 512.
Is the maximum number of thread per block from cudaFuncGetAttributes different with the number of threads I set before invoking cuda kernel?

Another question is that some suggest me to use ptx or cubin file to obtain such information.
However, I couldn’t find those informaiton from ptx file; and even I couldn’t read cubin file.
Is there anyone who knows where I can find such information from ptx file???
Or, can you tell me how can I read cubin file?? I am using Mac and tried to read cubin file with vim editor. It looks like just binary file; so I couldn’t really read the file but just lots of symbols.

Thanks & Best,