argv[0] - это строка, в которой запускающая программа должна передать запускаемой программе имя команды, по которой производился запуск. Это не обязательно имя программы. Оболочки (например, bash) обычно передают первое поле командной строки после всех подстановок (но до поиска исполняемого файла). В любом случае, ответственность за передачу этой строки лежит на вызывающей программе. Вы передали "+".