一、实验题目

Linux操作系统下C语言的使用

二、实验课时

2课时。

三、实验目的:熟悉Linux操作系统下c语言的使用。

四、实验内容

学习Linux环境下gcc的使用;

观察进程运行情况和CPU工作情况;

五、实验步骤:

1、屏幕编辑程序Vi的使用

vi是Unix系统中使用最广泛的文件编辑器。

启动vi的方法很简单:直接输入“vi”或直接输入“vi 文件名”命令。

启动vi时,处于命令状态,不能够输入字符,只能输入命令: a:“新增文本”(即Append)命令,执行后将进入输入模式,在当前光标之后新增文本。

I:“插入文本”(即Insert)命令,执行后将进入输入模式,在当前光标位置处新增文本。

d+d:“删除一行”命令。

x:“删除当前字符”命令。

P:“粘贴”命令,将复制的内容粘贴在目前光标所在的位置,若复制内容为整行文字,则会粘贴在光标所在位置的下一行。

:q:“退出vi”命令,不过如果在执行这个命令之前修改过内容,则无法退出。

:q!:“不存盘退出”命令,即是放弃所有的修改,强行退出。

:w:“存盘”命令。

:wq:“存盘退出”命令。

当我们使用“a”或“I”命令进行输入模式后,如果要回到命令模式,只需按一下ESC键即可。

2、Linux环境下的gcc的使用

格式:gcc [选项][要编译的源程序文件名]

当不用任何选项编译一个程序时,gcc将会生成(假定编译成功)一个名为a.out的可执行文件。例如:下面的命令将在当前目录下产生一个叫a.out的文件:

gcc mytest.c

可以用-o编译选项为将产生的可执行文件指定一个文件名来代替a.out,例如,将一个叫mytest.c的C程序编译为名叫mytest的可执行文件:

gcc –o mytest mytest.c

注意,当使用-o选项时,-o后面必须跟一个文件名。

例如:显示“hello,test world”的程序test.c如下:

#include

int main

{ printf(“hello,test world\n”);

}

在命令行上输入以下命令,编译和运行该程序并观察输出。

gcc –o test test.c

./test(注意:./test表示执行test文件)

为了更好的理解gcc的工作过程,可以把以上的编译过程分为几个步骤进行观察:

(1)gcc –E test.c –o test.i

-E可以使gcc在预处理后停止编译,并生成test.c文件,如果观察test.i文件的内容,会发现stdio.h上的内容和其它被预处理的文件都被包含进来;

(2)gcc –c test.i –o test.o

-c选项将test.i编译为目标代码,由于gcc识别.i为预处理后的c语言文件,因此gcc将自动跳过预处理步骤而开始执行编译过程。

(3)gcc –o testo test.o

把目标代码test.o生成了可执行文件,并用-o指定可执行文件名为testo。

gcc中常用选项及其含义

-c :只预处理、编译和汇编源程序,不进行连接,为每个源程序生成一个目标代码;

-o file :指定输出的文件名为file,当不指定时,默认的文件名是a.out;

-g :在可执行程序中包含标准调试信息,以利于以后的调试工作;

3.观察进程运行情况和CPU工作情况

(1)ps命令:查看系统中现在有那些进程存在,以及这些进程的状态(进程号、程序名、进程状态、父进程号、执行时间、标准输出等)。常用参数:

-A:显示所有进程;

-a:显示本终端上的所有进程,包括其他用户的;

-p:按进程号选择要显示的进程;

-l:长格式显示;

-m:显示线程;

请依次试用以下命令:ps ; ps –l ; ps –a –l ;

(2)pstree命令:显示整个系统的进程树结构,看到父、子进程间的结构关系;常用参数:-a :显示各进程的命令行;

-p :显示各进程的进程号;

-h :对当前进程及其祖先进程高亮度显示;

请试用命令:pstree –a –p –h

4./proc有关文件

/proc文件系统下的目录和文件内容提供诸如进程运行情况、系统资源(CPU、内存、设备、文件等)使用情况等大量系统信息,这些目录和文件都是在用户需要时由系统根据内核信息而实时动态产生的。用户可以通过more、cat等工具来访问和查询这些文件的内容(大多数是纯文本文件)。

与其它获取系统信息的手段(例如ps,pstree等系统命令)相比,/proc方法更具可读性,所提供的信息也丰富和系统的多。实际上,有了/proc以后,像 ps,pstree这些命令都是通过读取/proc中的文件内容来显示结果的。

在/proc下,系统中正在存在的每个进程都有一个对应的子目录/proc/pid,该子目录下的诸文件和下级子目录中,包含该进程的各种运行情况和资源占用情况,例如/proc/709/statm文件中列出了709号进程的内存使用情况。此外,/proc下还有很多与具体进程无关的文件和目录,它们记录着系统运行情况和资源使用情况,例如/proc/devices文件中列出了系统设备情况。

在/proc下与CPU和进程管理有关的文件有:

1、/proc/pid/stat:该文件内容为进程pid的运行情况。Ps命令就是根据该文件显示结果的。

2、/proc/pid/status:该文件内容为进程pid的运行情况。该文件比/proc/pid/stat文件内容少,但可读性好。

3、/proc/cpuinfo:CPU使用情况;

4、/proc/uptime:从系统开始启动到现在所经过的秒数,以及系统空闲的时间。

请试用命令:ls /proc

cat /pro/709/stat

cat /proc/status

cat /proc/cpuinfo

cat /proc/uptime

cat /proc/stat

六、练习:

请利用vi编辑如上名为test.c的源程序文件,并用gcc编译,连接,执行,观察结果,再如上分三步分开编译,用ls查看生成的文件,体会编译过程。

打开 红帽子 系统工具 终端 ,或者 桌面上直接右键点击终端。输入命令vi ,进入vi编辑器中,按a回车进入编辑状态。程序写完后,按esc退出,输入命令:w xxx.c(因为是C语言编写的,注意扩展名)。此时会提示保存成功。再次输入命令:q(退出),在这个时候调用gcc 编译链接程序。输入命令 gcc -o yyy xxx.c(注意 yyy是编译连接之后生成的文件名,和xxx可以不一样,但是最好命名一样便于记住,xxx是相当于类,而yyy则是编译之后的文件名。)有错的话此时会提示。没有错的话就输入运行的命令 ./yyy (注意./和后面的文件名之间没有空格)

再试着编写一个C程序,实现“求100以内的素数”,完成编辑、编译、连接、执行的全过程。

linux进去vi编辑器执行c语言代码,VI编辑器的使用与Linux操作系统下C语言的使用...相关推荐

  1. linux c语言 ppt,linux操作系统下c语言编程入门.ppt

    linux操作系统下c语言编程入门.ppt Linux操作系统下C语言编程入门 CNT Linux操作系统简介基础知识进程介绍文件操作时间概念消息管理线程操作网络编程Linux下C开发工具介绍 一 L ...

  2. linux操作系统下 c语言编程入门

    linux操作系统下 c语言编程入门 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门 ...

  3. linux操作系统下c语言编程入门

    linux操作系统下c语言编程入门  整理编写:007xiong  原文:Hoyt等 (一)目录介绍 1)Linux程序设计入门--基础知识  2)Linux程序设计入门--进程介绍  3)Linux ...

  4. 【转贴】linux操作系统下c语言编程入门

    [转贴]linux操作系统下c语言编程入门 发信人: Lerry (驴是的念来过倒·杏红等头墙上爬), 信区: Linux 标 题: linux操作系统下c语言编程入门 发信站: 哈工大紫丁香 (Fr ...

  5. linux系统下怎么使用c语言,Linux操作系统下C语言使用.ppt

    Linux操作系统下C语言使用 Linux操作系统下C语言的使用 授课教师:江兰帆 E-Mail: jiang_lanfan@126.com GCC的使用 在LINUX开发环境下,GCC(GNU C ...

  6. c语言编程操作系统,操作系统下c语言编程入门.doc

    操作系统下c语言编程入门 linux操作系统下c语言编程入门 1)Linux程序设计入门--基础知识? 2)Linux程序设计入门--进程介绍? 3)Linux程序设计入门--文件操作? 4)Linu ...

  7. linux系统下c语言编程的,Linux操作系统下C语言编程从零开始

    这里向大家介绍一下在Linux/UNIX 的机器上,进行 C/C++ 编程的一些入门级知识. · 所需具备的背景知识 · 开发所需的基本环境 · 获得帮助的途径 · 通过一个实例了解基本步骤 Prer ...

  8. [转] linux操作系统下c语言编程入门

    (一)目录介绍 1)Linux程序设计入门--基础知识  2)Linux程序设计入门--进程介绍  3)Linux程序设计入门--文件操作  4)Linux程序设计入门--时间概念  5)Linux程 ...

  9. linux操作系统c语言编程,Linux操作系统下C语言编程从零开始

    这里向大家介绍一下在Linux/Unix 的机器上,进行 C/C++ 编程的一些入门级知识. · 所需具备的背景知识 · 开发所需的基本环境 · 获得帮助的途径 · 通过一个实例了解基本步骤 Prer ...

最新文章

  1. 学习python好学吗-零基础学python难吗?好学吗?
  2. gdb工作原理(一)
  3. java基础知识回顾之javaIO类总结
  4. nyoj 284 坦克大战 (优先队列)
  5. python使用pyodbc,freetds连接azure数据库
  6. 10_InfluxDB常用函数(三)变换类函数(DERIVATIVE, DIFFERENCE,ELAPSED,MOVING_AVERAGE,NON_NEGATIVE_DERIVATIVE)等
  7. 开发函数计算的正确姿势 —— 移植 next.js 服务端渲染框架
  8. 《看聊天记录都学不会C语言?太菜了吧》(13)(9*9 乘法表)寻找电脑中的盲盒彩蛋
  9. 考研山东省的计算机学校有哪些,山东考研哪个学校好考
  10. Linux Shell脚本入门教程系列之(九)Shell判断 if else 用法
  11. linux sudo输入密码无法获得锁,Linux系统提示无法获得锁/var/lib/dpkg/lock怎么办?
  12. BZOJ 2440 完全平方数
  13. redis学习篇(九)-----高级特性之事务处理
  14. java locale string_Java Locale toString()用法及代码示例
  15. 鬼话描绘形式_桥接形式
  16. LJX的校园:社会实践的任务
  17. 失恋后同学对我的劝告。。。。表谢意
  18. HTML常用标签、文本格式化标签:加粗、倾斜、删除线、下划线等
  19. 网站邀请码php,简单的PHP邀请码系统
  20. 机器学习_深度学习毕设题目汇总——肺结节

热门文章

  1. aiaidaxue.com 爱爱大学最新地址发布页
  2. Magicodes.Pay已支持Volo Abp
  3. yii2 advanced 开启gii localhost/index.php?r=gii无法打开gii
  4. 根据地址生成客户地图及热力图(百度地图API)
  5. Kafka异常问题记录
  6. LabVIEW项目中实时目标出现黄色感叹号
  7. 解决Visual Studio 2008安装时出现的1330数字签名错误
  8. 【GlobalMapper精品教程】021:利用控制点校正栅格图像
  9. MYSQL常用命令大全(收集的超全)!
  10. matlab对ADC动态性能进行分析