Как записать PID в файл в UNIX

#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));