I have the follwoing code:
...
printf("Started %d", pid);
FILE * fh;
fh = fopen("run/source.pid", "wb");
fwrite(&pid, sizeof(int), 1, fh);
fclose(fh);
However the written pid file writes jargon, and not the integer, I though pid_t was just an int, I even tied doing sizeof(pid_t) for the second argument I get similar issues.
Any ideas? Thanks for the help in advance.
Thanks
well I do not understand quite well the question (too little context), but the issue may be is that you are seeing the file in a text editor, terminal, etc..
fwrite() writes raw data, for example, suppose you have a pid number, lets say 12, and you write that number using fwrite like this:
fwrite() will write a 32 bit integer into the file
file, that is, depending in your processor type, a byte sequence like this:00 00 00 12However
fprintf() will write a byte sequence of :
49 50(ASCII characters platform independent) visible among all terminals or text editors.Hope this helps.