Если ты о т.н. freestanding, Dushevny, то там вообще не обязательно должна быть какая-то там main(), а если и будет, то совсем не обязательно это будет именно та main(), что описана Стандартом.
Тем не менее все компиляторы, с которыми я работал, используют main(argv, argc) и только один допускал main(void). А вот что они кладут в argv[0] проверять не было необходимости, а в выходном файле данные отсутствуют, потому каек не используются в программе.