первая запись в массиве argv - это имя самого приложения.поэтому, если вы хотите передать аргументы, пропустите первую запись и начните свои аргументы со второй записи в массиве.вы, вероятно, могли бы просто использовать пустую строку в качестве первого элемента массива.
char *argv[] =
{
"",
"--a",
"--b",
srcFile ,
destFile
};
my_c_main(5, argv);