Problem z fukcją execl, albo z Clionem.

0

Korzystam z Cliona.
Kompletnie nie wiem co się stało, z mojej perspektywy wyglądało to tak, wszystko działało jak należy po czym dopisałem jednego printf'a w funkcji całkowicie niezależnej i program się posypał.

Kod z funckją execl.

if (execl(nazwa, argument1, argument2, NULL) == -1)
{
      perror("EXECL error");
      exit(-1);
}

Więc ona nie zgłasza błędu.

Mój CMakeList.txt

cmake_minimum_required(VERSION 3.9)
project(untitled11 C)
set(CMAKE_C_STANDARD 99)

set(SOURCE_FILES_MAIN main.c includes.h semafory.h semafory.c zapis.h zapis.c)
set(SOURCE_FILES_P1 p1.c includes.h semafory.h semafory.c zapis.h zapis.c)
set(SOURCE_FILES_P2 p2.c includes.h semafory.h semafory.c zapis.h zapis.c)
set(SOURCE_FILES_P3 p3.c includes.h semafory.h semafory.c zapis.h zapis.c)

add_executable(main.out ${SOURCE_FILES_MAIN})
add_executable(p1.out ${SOURCE_FILES_P1})
add_executable(p2.out ${SOURCE_FILES_P2})
add_executable(p3.out ${SOURCE_FILES_P3})

Program p1.

int main(int argc, char **argv)
{ 
    if (argc != 2)
    {
        printf("[PROCESS 1] Error with argc\n"); 
        exit(1);
    }

Podczas Build All | Debug

wyświetla się:
[PROCESS 1] Error with argc
Process finished with exit code 1

co oznaczało by, że program p1 nie dostaje argumentu w tym przypadku argument2.

Jak wcześniej pisałem nic nie modyfikowałem przy tej funkcji ani p1 ani CMakeList i działało. Ktoś miał może podobny problem albo potrafi pomóc?

0

Dobra po dobrej godzinie siedzenia nad tym znalazłem przyczynę. Otóż wygląda na to, że przy konfiguracji Build All Clion zmienił mi (nie mam pojecia jak i dlaczego, bo sam tego nie zrobiłem) z Executable:main.out na Executable:p1.out

1 użytkowników online, w tym zalogowanych: 0, gości: 1