【发布时间】:2014-12-15 00:42:54
【问题描述】:
只是测试文件描述符。我的目标是用 fopen 打开一个文件流,并使用 fprintf 将文件描述符整数值写回文件中,看看我得到了什么结果。
(我决定使用 fopen、fprintf 等)因为它允许我写入变量,而 write() 不允许,
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
int main ()
{
FILE *fp;
fp = fopen("wow.txt", "w+");
if (fp < 0)
{
printf("ERROR \n");
}
else
{
printf("we good \n");
}
fprintf(fp, "hi %p \n", fp);
}
我面临的问题是,如果我为 fprintf 语句编写 %d...我得到一个编译器错误。如果我写 %p,我会在 RAM 中获得地址。
是否可以得到绝对整数值...比如“3”
【问题讨论】:
-
如果您打开一个文件,请在离开该功能之前将其关闭。并且您使用
fileno(fp)从文件流(在 POSIX 上)获取文件描述符。