初次接触linux系统编程

初次接触linux系统编程

一、背景

第一次接触 linux 系统编程,先从最简单的做起,首先探索一下 more 命令的实现方法。 more 命令使用起来并不复杂,先在命令行中输入 more ,会得到下面的反馈信息。

more的使用方法是more+选项+名称。我在这里先忽略掉选项,只实现more来分页查看文件内容。(只是more最简单的查看文件内容的功能)

二、实现过程

1.more的运作方式

想实现more的功能,先看一下more的运作方式。在这里拿/etc/passwd以作演示。查看的过程这里就不截图了。首先如果文件无法打开的话(如果文件有问题,fopen()函数会返回空指针。磁盘满、文件名非法、存取权限不够或者硬件问题都可能导致文件打不开),必须要在屏幕标准输出一段警告语来警告文件无法打开。如果文件可以正常打开,那么more命令会首先显示文件的部分信息,同时会给出一个More的反白的字符并且后面跟有查看的百分比。此时若输入(1q:会退出查看页面(2)空格:会显示部分信息(与第一次显示的行数相同)(3Enter:会显示一行信息。

2.初次实现

第一次尝试系统编程,对照more的功能编出了这样的程序。说起来不好意思,其中主函数main的显示参数及其个数的用法我是第一次使用,之前在C的学习中并未见过如此用法,可见自己真是疏于实践了,这么有用的东西之前都没有掌握好,在这里通过这个实践很快就掌握其用法了。这段代码的功能还很残缺。几个比较大的问题:1.没有提示more的反白醒目字体。2.qspace键入后,必须按Enter键才可以继续执行命令。3.Enter命令键入后存在问题:文件信息是隔行显示的。

3.修正

 
这次修改添加了 more 的反白提示字。并且修正了之前的用 Enter 键隔行显示的 bug 。添加反白提示字很简单,只需要在 see_more 函数中添加一段代码。而隔行显示是因为在 more 函数中多了一行 else 命令,导致并未输出接下来的一行而被下一行在 line 中取代了。
三、总结

    这段程序使我对系统编程有了一点点的概念。就这种入门级的编程都耗费了我很多精力去编写,因为代码看上去都不是很难去理解,但自己去写可真是漏洞百出,特别头疼。而且最终写出的程序还很不如人意,接下来还有许多东西要去学习来完善它。但与此同时,我也变得不像之前对linux系统编程那样感到望而生畏遥不可及了。只要沉下心学习,总会有所收获。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值