#c #unix #fork #posix #pid
#c #unix #fork #posix #pid
Вопрос:
Как мне записать PID в файл с помощью функции getpid()?
Я попытался преобразовать его в char и записать массив int, ни один из них не работает.
Комментарии:
1. man7.org/linux/man-pages/man2/getpid . 2.html Скорее всего, вы неправильно его используете
Ответ №1:
В C приведения из int в char недостаточно. Приведение изменяет способ, которым компилятор обрабатывает указатель, как он относится к нему и как вычисляется арифметика указателя. Это не изменяет содержимое.
Если вы хотите напечатать int, вы должны преобразовать его в строку.
вы можете использовать:
fprintf(fd, "%d", getpid());
Ответ №2:
int fd;
FILE *somefile;
//text
fprintf(somefile, "%d", getpid());
//binary
pid_t pid = getpid();
fwrite(amp;pid, sizeof(pid), 1, somefile);
write(fd, amp;pid, sizeof(pid));