GCC генерирует предупреждение, описанное в subj для строки с execv. Хочется правильно его избежать (т.е. не отключая предупреждения). Если argsarray переопределить как char *, и убрать преобразование типа в execv, тогда ругается на строку с циклом for, т.к. program является const char *. Есть какой-нибудь красивый способ избежать предупреждений в таком коде:
void MYsystem(const char *program, ...) {
pid_t childpid;
int tmp = 0;
va_list args;
const char *argsarray[MAXARGS];
childpid = fork();
if (childpid == 0) {
va_start(args, program);
for (argsarray[0] = program; (argsarray[tmp] = va_arg(args, char *)) != NULL; tmp++);
execv(program, (char * const *)argsarray);


Ответ на:
комментарий
от Legioner


Ответ на:
комментарий
от Legioner


Ответ на:
комментарий
от execve

Ответ на:
комментарий
от saper

Ответ на:
комментарий
от execve

Ответ на:
комментарий
от saper

Ответ на:
комментарий
от execve

Ответ на:
комментарий
от execve

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Не могу разобраться с ошибкой сегментирования (2017)
- Форум Передача имени файла дочернему процессу (2017)
- Форум fork()+exec()+pipe() (2016)
- Форум Баг GCC или что? (2016)
- Форум Разработка своего shell'a (2012)
- Форум fork + popen. Залипание на wait при SIGCHLD (2019)
- Форум Трабл с модулем (2005)
- Форум ошибка сигментирования в so (2016)
- Форум GCC. Приведение типов. (2005)
- Форум Не то зомби, не то - нет ... ??? (2003)