gpt4 book ai didi

C:反转文件的系统调用和指针

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

已解决。谢谢 lutogniew .....只是让它复杂化了......

所以我在布置家庭作业时遇到了一些麻烦。任务是接收一个文件(仅使用系统调用),将其反转并写入一个输出文件,其中包含反转后的数据(仅限 ASCII)。一个问题是反向部分必须用指针来完成。我在下面做了以下操作,它确实有效。但是,它不使用指针来反转。

我想我的问题是,如何使用指针访问 data[] 之类的内容?或者,我怎样才能从文件中读入它。我尝试的所有内容(主要是 char**)都只读取 null。

任何帮助将不胜感激。

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>

int main(void)
{
int i = 0;
int fileOut = open("output.txt", O_WRONLY | O_APPEND);
int fileIn = open("input.txt", O_RDONLY);

int start = lseek(fileIn, 0 , SEEK_CUR);
int end = lseek(fileIn, 0 , SEEK_END);
int restart = lseek(fileIn, 0-end , SEEK_CUR);

char data[end];
char reverseData[end];
read(fileIn, data, end);
for(i = 0; i< end; i++){
reverseData[i] = data[end-(i+1)];
}

write(fileOut, reverseData, end);

return 0;
}

最佳答案

接受答案后。

OP 考虑作为另一种方法的东西:

为了好玩,一个不太严肃的递归方法来反转文件。

void reverse(int fileIn, int fileOut) {
char data;
if (read(fileIn, &data, 1) == 1) {
reverse(fileIn, fileOut);
write(fileOut, &data, 1);
}
}

int main(void) {
int fileOut = open("output.txt", O_WRONLY | O_APPEND);
int fileIn = open("input.txt", O_RDONLY);
reverse(fileIn, fileOut);
close(fileIn);
close(fileOut);
return 0;
}

关于C:反转文件的系统调用和指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28468908/

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