当前位置: 首页 > 知识库问答 >
问题:

linux 自定义管道 例如echo abcdef | grep "asd",我要自己写一个类似grep的功能,帮解决问题?

华星驰
2023-09-29
#include <stdio.h>int main() {    char buffer[100];    // 从标准输入读取数据    while (fgets(buffer, sizeof(buffer), stdin) != NULL) {        // 处理读取的数据        printf("Received data: %s", buffer);    }    return 0;}

最后我执行的时候

➜  untitled echo 123213 | ./test_pipe                                    ./test_pipe: line 1: 213: command not found

共有1个答案

冀望
2023-09-29

你的程序似乎没有正确处理来自管道的输入。在你的示例中,echo 123213 | ./test_pipeecho 将把 123213 写入到 test_pipe 程序的 stdin 中,然而你的程序并没有正确地读取和处理这些输入。

以下是一个简单的修改版本,这个程序会从 stdin 中读取字符并打印出来,直到遇到 EOF:

#include <stdio.h>int main() {    char c;    // 从标准输入读取数据    while ((c = getchar()) != EOF) {        // 处理读取的数据        putchar(c);    }    return 0;}

这个程序使用了 getchar() 函数来一个字符一个字符地从 stdin 中读取输入。当读取到 EOF(End Of File)时,循环将停止。对于每个读取的字符,使用 putchar() 函数将其写回 stdout。这样,当你运行 echo 123213 | ./test_pipe 时,它将正确地接收并打印输入。

如果你想在接收到的字符串中进行某些更复杂的处理(例如搜索或过滤),你可能需要使用更高级的字符串处理函数(例如 strstr()strchr())。或者,你也可以选择读取整行,然后使用字符串处理函数来处理读取的字符串。但是在这个简单的例子中,上面的程序应该就足够了。

 类似资料:
  • 使装饰器包含具有name属性的管道元数据。 此值将用于在模板表达式中调用此管道。 它必须是有效的JavaScript标识符。 实现PipeTransform接口的transform方法。 此方法接受管道的值和任何类型的可变数量的参数,并返回一个变换的(“管道”)值。 import { Component } from '@angular/core'; selector: 'app-root',

  • 问题内容: 我正在阅读另一个SO问题,即Swift do-try-catch语法。在他的回答中, rickster 为OP的自定义类创建了扩展。 Konrad77 评论说,这是“保持代码整洁的好方法。” 我尊重他们的知识,这使我相信我在自己的代码中遗漏了一点。 除了为我创建的类创建扩展之外,还有其他好处(除了整洁)还是原因?我可以将相同的功能直接放入类中。如果我是唯一使用该类的人,或者其他人将使用

  • 本文向大家介绍详解linux grep命令,包括了详解linux grep命令的使用技巧和注意事项,需要的朋友参考一下 本文介绍了linux grep命令,具体如下: 1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是

  • 请查找我的nginx日志输出(access.log) 182.69.143.120---[31/Mar/2016:03:10:51 0530]“GET/api/check_delivery.php?authkey=9450AW2qTKYe453be757c My nginx自定义日志格式: $remote_addr-$remote_user[$time_local]“$request”$host'

  • 本文向大家介绍linux grep正则表达式与grep用法详解,包括了linux grep正则表达式与grep用法详解的使用技巧和注意事项,需要的朋友参考一下 需要大家牢记:正则表达式与通配符不一样,它们表示的含义并不相同      正则表达式只是字符串的一种描述,只有和支持正则表达式的工具相结合才能进行字符串处理。本文以grep为例来讲解正则表达式。 grep命令 功能:输入文件的每一行中查找字

  • 我所需要的只是一个工作的例子(显然没有任何地方有这样的例子;我找了找,没有找到任何东西,所以我在这里询问)。 例如,我将如何在Java中实现这个helper步骤操作?在这种情况下,如何从Java上下文中访问WebDriver实例?那么,如何调用嵌入? 上面的方法可能行不通。我只是希望有人能给我指明正确的方向。我希望空手道演示中有这样的例子。