gpt4 book ai didi

c - C编程中的输入重定向?

转载 作者:行者123 更新时间:2023-12-04 09:35:17 24 4
gpt4 key购买 nike

我正在尝试将名为 data1 的数据文件重定向到我的程序中,但我一直收到 segmentation fault .

当我尝试 ./w data1然后它读取正确但是当我这样做时 ./w < data1然后错误弹出。

我必须使用第二种方式来完成我的作业。

这是我的代码:

int main(int argc, char *argv[])
{
FILE *Q;
Q = fopen(argv[1],"r");
}

最佳答案

argv[1]指向二进制文件的第一个参数(没有名称),因此在 ./w < data1 的情况下它不见了。您正在尝试访问“非法”内存,因此出现段错误。

标记<是一个 bash 功能,它不会传递给 C。

如果你想使用这样的重定向,只需要从标准输入读取而不关心文件/argv。它的意思是“获取文件 data1 并将其传递给描述符 0,即标准输入”。

您可以使用 scanfread(0, ...)使用文件的内容。

关于c - C编程中的输入重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19504505/

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