这是我作为简单实验的一部分所做的事情;
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int fun()
{
int d=10;
write(1,(int*)d,sizeof(d));
}
int main()
{
int x;
fun();
read(1,(int*)x,4);
printf("x=%d\n",x);
return 0;
}
如您所见,我正在尝试通过 IO 流(IO 文件)stdout
访问 fun()
函数中 d
的值;我也尝试使用 stdin ,但问题是 x 值没有改变。 (我在在线 IDE 中尝试过。)但根据我的想法,它应该更改为 d
的值。
谁能帮我看看为什么它不这样做?
最佳答案
读写需要指针。在您的情况下,它是 &d
和 &x
。将 int
转换为 int*
通常没有意义。
关于c - read() 和 write() 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42106716/