gpt4 book ai didi

C (UNIX),组合文件(字节数)

转载 作者:行者123 更新时间:2023-11-30 20:34:36 25 4
gpt4 key购买 nike

因此,我尝试按照提供的顺序组合任意数量的给定文件并将输出打印到 std 输出。文件名和规范通过 UNIX 命令行给出。我的输入验证工作完全正常,我只是无法弄清楚如何将我的想法转化为 C 语法(我以前从未用 C 编写过代码)。

&g 将合并整个文件&qN(N 是整数)将仅组合前 N 个字节&uN(N 是整数)将仅合并最后 N 个字节

我认为最好的方法是使用 fopen 打开文件,弄清楚它有多大并创建一个那么大的缓冲区,然后读入该缓冲区(使用 fread)并写入缓冲区(使用 fwrite)。我觉得解决方案很简单,不应该超过几行。

我对第一个规范的尝试如下。我只能到目前为止,因为这对我来说是一门非常新的语言。

FILE *fp;
fp = fopen(file, "r");

// if file fails to open - file is not found
if (fp == NULL)
{
perror("file %s does not exist", file);
}
else
{
fseek(fp, 0L, SEEK_END);
file_sz = ftell(fp);
fseek(fp, 0L, SEEK_SET);
buffer = malloc(sizeof(file_sz));
}

最佳答案

以下是一个基本示例,可用于启动和运行一些好的东西。

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

char buffer[1001]; // NYI - no magic numbers. Static size....

int main(int argc, char** argv) {
bzero(buffer, sizeof(buffer));
for(int x=1; x<argc; x++) {
FILE *fp = fopen(argv[x], "r+");
if (fp) {
while(fgets(buffer, 1000, fp)) { // NYI - no magic numbers
printf("%s", buffer);
}
} else {
printf("could NOT open file %s\n", argv[x]);
}
}
}

关于C (UNIX),组合文件(字节数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948805/

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