Проблема здесь заключается в использовании printf
. Ваша переменная id имеет тип double
, и вы передаете ее в printf
, когда она ожидает int
. Это полностью сломает результат.
Заменить
double id = 0;
с
long id;
чтобы сохранить его как целочисленный тип.
Также замените
printf("%d %d", id, getpid());
с
printf("%ld %ld", id, (long) getpid());
, чтобы гарантировать, что ожидаемый тип передается в printf.
Кроме того, нет необходимости инициализировать id
в 0, поскольку вы безоговорочно назначаете его позже.