首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shell文本处理库

Shell文本处理库
EN

Stack Overflow用户
提问于 2011-06-07 02:08:10
回答 2查看 750关注 0票数 1

我需要在微控制器上编写一个非常基本的命令解释器,它将通过虚拟串行端口进行通信。在我继续编写我自己的版本之前,我想知道是否有人知道任何用于非常简单的、类似shell的文本处理的库。我喜欢shell中的标准功能,比如只有在用户键入新行后才能接收到的文本,按backspace会删除队列中的最后一个字符,而不是在队列中添加另一个字符,诸如此类。

有什么想法吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-20 08:52:14

为了在微控制器中实现真正简单的行缓冲"shell“(行缓冲意味着只在"enter”或“\n”之后进行处理),我会这样做(在主循环的中间:

代码语言:javascript
复制
char * p = my_read_buffer; //this is in the initialization, rather than the main loop

if (byte_from_my_uart_avaliable()) {
    *p = read_uart_byte();

    if (*p == '\n') {
        process_input(my_read_buffer);
        p = my_read_buffer; //reset the linebuffer
    }
    else 
        p++;
}

那么,秘诀就是process_input()函数,您可以在其中解析命令及其参数,以便可以调用适当的函数来处理它们。

这只是一个远未完成的想法,您需要在'\n'之前限制接收的字符数,以防止溢出。

票数 1
EN

Stack Overflow用户

发布于 2011-06-07 05:28:13

ECMDEthersex平台的一部分。

ECMD Reference

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6256193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档