gpt4 book ai didi

c - 害怕在 C 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:50 26 4
gpt4 key购买 nike

#include<stdio.h>
#include<stdlib.h>
int main()
{
int virtualAddress, pageNo, frameNo, baseAddress, offset, address, checkValue;
unsigned char basket;
printf("Enter Page Number=\n");
scanf(" %d", &virtualAddress);
pageNo=virtualAddress/256;
offset=virtualAddress%256;
frameNo=pageNo;
FILE *fp;
fp=fopen("BACKING_STORE.bin", "rb");
frameNo++;
baseAddress=frameNo*256;
address= baseAddress+offset;
printf("\tByte=%d\n", address);

int returnValue=fseek(fp, address,SEEK_SET);
printf("\treturn value=%d\n", returnValue);
printf("\tCurrent Position=%ld\n", ftell(fp));
checkValue=fread(&basket,sizeof(char), 1,fp);
printf("\tCheckValue=%d\n", checkValue);

printf("\nValue %d=%c ", offset, basket);
printf("\n");
return 0;
}

我正在尝试将虚拟地址映射到物理地址。我有一个大小为 65,536 字节的文件“BACKING_STORE.bin”文件,所以我试图从用户那里获取虚拟地址,找到页码和偏移量,并假设我已经采取了“pageNo = frameNo”我正在尝试从中找到基地址,然后在向它添加偏移量后,我得到了要从“BACKING_STORE.bin”中读取的字节位置。但就我而言,即使我的文件指针位于文件中的正确位置,fread 也不起作用。我的 fread 函数调用返回 0,这意味着 fread 执行不成功。

最佳答案

找出错误是什么:

#include <stdio.h>
#include <string.h>

char errorString[256];

sprintf(errorString, "%s\n", strerror(ferror(fp)));
printf("%s", errorString);

编辑

也许你在文件的末尾:

if(feof(fp))
printf("End of file!\n");

关于c - 害怕在 C 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22277178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com