您的位置:首页 > 运维架构 > Linux

初次接触linux系统编程

2016-06-22 18:59 351 查看
初次接触linux系统编程
一、背景

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



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

二、实现过程

1.more的运作方式

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

2.初次实现





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

3.修正

 




这次修改添加了more的反白提示字。并且修正了之前的用Enter键隔行显示的bug。添加反白提示字很简单,只需要在see_more函数中添加一段代码。而隔行显示是因为在more函数中多了一行else命令,导致并未输出接下来的一行而被下一行在line中取代了。
三、总结
    这段程序使我对系统编程有了一点点的概念。就这种入门级的编程都耗费了我很多精力去编写,因为代码看上去都不是很难去理解,但自己去写可真是漏洞百出,特别头疼。而且最终写出的程序还很不如人意,接下来还有许多东西要去学习来完善它。但与此同时,我也变得不像之前对linux系统编程那样感到望而生畏遥不可及了。只要沉下心学习,总会有所收获。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: