Can somebody explain me exactly,why defined "__P(argc) " ( at <sys/cdefs.h>) ? I was thinking it something to do with variable number of arguments , but the following doesn't match my previous thougths : extern int readdir_r __P ((DIR *__dirp, struct dirent *__entry, struct dirent **__result)); So , what __P(argc) supposed to do ? Thanks a lot, Uri