DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 869|回复: 0
打印 上一主题 下一主题

[待整理] Linux下C编程基础之:实验内容

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-10 07:37:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        3.7  实验内容

        3.7.1  vi使用练习

         
        1.实验目的

        通过指定指令的vi操作练习,使读者能够熟练使用vi中的常见操作,并且熟悉vi的3种模式,如果读者能够熟练掌握实验内容中所要求的内容,则表明对vi的操作已经很熟练了。
         
        2.实验内容

        (1)在“/root”目录下建一个名为“vi”的目录。
        (2)进入“vi”目录。
        (3)将文件“/etc/inittab”复制到“vi”目录下。
        (4)使用vi打开“vi”目录下的inittab。
        (5)设定行号,指出设定initdefault(类似于“id:5:initdefault”)的所在行号。
        (6)将光标移到该行。
        (7)复制该行内容。
        (8)将光标移到最后一行行首。
        (9)粘贴复制行的内容。
        (10)撤消第9步的动作。
        (11)将光标移动到最后一行的行尾。
        (12)粘贴复制行的内容。
        (13)光标移到“si::sysinit:/etc/rc.d/rc.sysinit”。
        (14)删除该行。
        (15)存盘但不退出。
        (16)将光标移到首行。
        (17)插入模式下输入“Hello,this is vi world!”。
        (18)返回命令行模式。
        (19)向下查找字符串“0:wait”。
        (20)再向上查找字符串“halt”。
        (21)强制退出vi,不存盘。
        分别指出每个命令处于何种模式下?
         
        3.实验步骤

        (1)mkdir /root/vi
        (2)cd /root/vi
        (3)cp /etc/inittab ./
        (4)vi ./inittab
        (5):set nu(底行模式)
        (6)17<enter>(命令行模式)
        (7)yy
        (8)G
        (9)p
        (10)u
        (11)$
        (12)p
        (13)21G
        (14)dd
        (15):w(底行模式)
        (16)1G
        (17)i 并输入“Hello,this is vi world!”(插入模式)
        (18)Esc
        (19)/0:wait(命令行模式)
        (20)?halt
        (21):q!(底行模式)
         
        4.实验结果

        该实验的最终结果是对“/root/inittab”增加了一行复制的内容:“id:5:initdefault”。
         
        3.7.2  用gdb调试程序的bug

        1.实验目的

        通过调试一个有问题的程序,使读者进一步熟练使用vi操作,而且熟练掌握gcc编译命令及gdb的调试命令,通过对有问题程序的跟踪调试,进一步提高发现问题和解决问题的能力。这是一个很小的程序,只有35行,希望读者认真调试。
         
        2.实验内容

        (1)使用vi编辑器,将以下代码输入到名为greet.c的文件中。此代码的原意为输出倒序main函数中定义的字符串,但结果显示没有输出。代码如下所示:
         
        #include <stdio.h>
        int display1(char *string);
        int display2(char *string);
         
        int main ()
        {
            char string[] = "Embedded Linux";
            display1 (string);
            display2 (string);
        }
        int display1 (char *string)
        {
            printf ("The original string is %s \n", string);
        }
        int display2 (char *string1)
        {
            char *string2;
            int size,i;
            size = strlen (string1);
            string2 = (char *) malloc (size + 1);
            for (i = 0; i < size; i++)
            {
             string2[size - i] = string1;
            }
<p>            string2[size+1] = &
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-28 05:38 , 耗时 0.079729 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表