实验三:Linux系统下C编程
2015年6月23日
9
gcc的常用选项
gcc常用选项
选项 -c 含义 仅对源文件进行编译,不链接生成可执行文件。在 对源文件进行查错时,或只需产生目标文件时可以 使用该选项。 在可执行文件中加入调试信息,方便进行程序的调 试。如果使用中括号中的选项,表示加入gdb扩展 的调试信息,方便使用gdb来进行调试 对生成的代码使用优化,中括号中的部分为优化级 别,缺省的情况为2级优化,0为不进行优化。注意, 采用更高级的优化并不一定得到效率更高的代码。
•
2015年6月23日 8
五、gcc的使用
• 基本使用格式
– $ gcc [ 选项 ]及含义
gcc常用选项
选项 -o file 含义 将经过gcc处理过的结果存为文件file,这个结果文件可 能是预处理文件、汇编文件、目标文件或者最终的可 执行文件。假设被处理的源文件为source.suffix,如 果这个选项被省略了,那么生成的可执行文件默认名 称为a.out;目标文件默认名为source.o;汇编文件默 认名为source.s;生成的预处理文件则发送到标准输 出设备。
2015年6月23日
13
生成预处理文件
• 命令
– $gcc –E hello.c –o hello.i
预处理文件hello.i的部分内容
...... extern void funlockfile (FILE *__stream) ; # 679 "/usr/include/stdio.h" 3 # 2 "hello.c" 2
2.安装 首先查看linux系统是否安装了gcc, #rpm –qa|grep gcc 如果没有安装,需要安装gcc-3.2.2-5,libgcc3.2.2,compat-gcc-7.3-2.96.118,gcc-g77-3.2.2-5 几个软件包。
2015年6月23日 7
3.对C/C++编译的控制(GCC的编译过程)
2015年6月23日
18
编译多个文件
• 目录结构(2)
– 编译方式(2)
• 分步编译 • 命令:
– 1、$gcc -c my_app.c -Ifunctions – 2、$gcc -c functions/greeting.c – 3、$gcc my_app.o greeting.o –o my_app
实验三:Linux系统下的C编程
2015年6月23日
1
实验目的和实验要求
一.了解vi编辑器的作用和功能 二.熟悉vi的操作环境和切换方法 三.理解Linux下用GCC编译C程序的过程。 四.学会Linux下用GCC编写C程序。
2015年6月23日
2
一.vi编辑器概述
vi 编辑器是各种 UNIX/Linux 系统都会支持的全 屏幕文字编辑器,与Windows 下的文字编辑器相比, vi 的 使 用 要 麻 烦 一 些 , 但 功 能 强 大 , 并 且 是 UNIX/Linux 缺省编辑器。任何一位 UNIX/Linux 系 统管理者都应该学会用vi。 vi的操作环境是针对熟悉UNIX系统的使用者 而设计,初学者必须多加练习。
int main(void) { printf("hello gcc!\n"); return 0; }
2015年6月23日 14
生成汇编文件
• 命令
– $gcc –S hello.c –o hello.s
汇编文件hello.s的部分内容 ...... main: pushl movl ........ addl movl leave ret ......" $16, %esp $0, %eax %ebp %esp, %ebp
int main(void)
{ char name[N]; printf("Your Name,Please:"); scanf("%s",name); greeting(name); return 0; }
17
{
printf("Hello %s!\r\n",name); }
2015年6月23日
编译多个文件
在编译源文件时增加一个搜索库文件的额外目录— —dir
-llibrary
-w -Wwarning
在编译链接文件时增加一个额外的库,库名为 library.a
禁止所有警告 允许产生warning类型的警告,warning可以是: main、unused等很多取值,最常用是-Wall,表示产 生所有警告。如果warning取值为error,其含义是 将所有警告作为错误(error),即出现警告就停止 编译。
可进行的操作方式
预处理、编译、汇编、 链接 预处理、编译、汇编、 链接 编译、汇编、链接 编译、汇编、链接 汇编、链接 预处理、汇编、链接 不进行任何操作 链接
2015年6月23日
12
使用gcc编译代码
六、源代码(两个实例)
1、编译单个文件
示例源程序——hello.c #include <stdio.h> int main(void) { printf("hello gcc!\r\n"); return 0; }
– 预处理(Preprocessing) gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件 中的文件包含(include)、预编译语句(如宏定义define等)进行 分析。 – 编译(Compilation) Gcc调用cc1进行编译,这个阶段根据输入文件生成汇编语言。 – 汇编(Assembly) Gcc调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文 件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都 生成以.o为后缀的目标文件。 – 链接(Linking ) Gcc调用ld来完成连接工作,生成可执行文件。
:w-- 将编辑的文本存盘。:w!-- 若文件属性为“只读”时, 强制存盘 :q-- 退出vi :q!--退出且不存盘。:wq--存盘并退 出
2015年6月23日
6
四. gcc简介 1.简介
– Linux系统下的gcc(GNU C Compiler)是GNU 推出的功能强大、性能优越的多平台编译器,是 GNU的代表作品之一。gcc是可以在多种硬体平 台上编译出可执行程序的超级编译器,其执行效 率与一般的编译器相比平均效率要高20%~30%。
• 思路:
– 编译每一个.c文件,得到.o的目标文件; – 将每一个.o的目标文件链接成一个可执行的文件;
2015年6月23日
19
• 目录结构(1)
– 编译命令
./
greeting.h greeting.c my_app.c
• $ gcc my_app.c greeting.c –o my_app
• 目录结构(2)
– 编译方式(1)
./ functions my_app.c
greeting.h greeting.c
$ gcc my_app.c functions/greeting.c –o my_app -I functions
2015年6月23日
3
二.vi的操作环境和切换方法
vi 共分为三种模式
( 1 )命令模式:命令模式为 vi的初始模式,可以使用“上下 左右”按键来移动光标,您可以使用“删除字符”或“删除整 行”来处理文档。在编辑模式或指令列模式中按【ESC】键可 换回命令模式。
(2)编辑模式:在命令模式中按下【i, I, o, O, a, A, r, R】 等字母之后才会进入编辑模式。按下上述的字母时,在画面的 左下方会出现【 --INSERT-- 或 --插入-- 】的字样,才可以 做文字数据输入。 (3)指令列模式:在命令模式当中,输入 【:】或【 / 】就 可以将光标移动到最底下那一行,进入指令列模式。在这个模 式当中,可以存盘、结束vi 、显示行号等操作。
2015年6月23日
15
生成二进制文件
• 生成目标文件
– 命令:
• $gcc –c hello.c –o hello.o
• 生成可执行文件
– 命令:
• $gcc hello.c –o hello • 运行程序 • $./hello hello gcc!
2015年6月23日
16
• 文件清单
2.编译多个文件
-g[gdb]
-O[0、1、2、3]
将名为name的宏定义为definition,如果中括号中的 Dname[=definitio 部分缺省,则宏被定义为1 n]
2015年6月23日
10
gcc的常用选项
gcc常用选项
选项 含义
-Idir
-Ldir
在编译源程序时增加一个搜索头文件的额外目录— —dir,即include增加一个搜索的额外目录。
2015年6月23日
11
gcc文件扩展名规范
• gcc可以根据文件扩展名执行操作
gcc文件扩展名规范 扩展名
.c .C,.cc,.cp,.cpp,.c ++,.cxx .i .ii .s .S .h .o
类型
c语言源程序 c++语言源程序 预处理后的c语言源程序 预处理后的c++语言源程序 预处理后的汇编程序 未预处理的汇编程序 头文件 目标文件
greeting.h my_app.c #include <stdio.h> #include "greeting.h" #define N 10
#ifndef _GREETING_H #define _GREETING_H void greeting (char * name);
#endif
实验三 LINUX下的C程序设计
实验三Linux下的C程序设计【内容提要】熟悉linux下的C程序设计工具。
掌握vi、gcc、gdb等软件的用法。
在基本实验的基础上重点掌握3个案例的编程。
这3个案例分别是:文件拷贝程序设计、猜数字游戏设计、进程调用程序设计、多文件项目的AUTOTOOLS应用。
【考核内容】随机抽取1个案例进行闭卷式机考即编辑、编译、调试与运行和结果分析。
3.1 实验目的通过vi或emacs和gcc的熟练使用,掌握linux下C程序的设计、调试与运行的原理、方法与应用技能。
通过进程编程,掌握进程程序的设计、调试、运行等以及相关知识。
通过autotools的练习,掌握使用make的自动安装与压缩文件的制作技术。
3.2 实验要求1.充分复习教材中有关实验的内容。
2.实验前根据实验目的和本人的情况设计出简单程序、分支程序、循环程序;写出实验中要解决的问题。
3.把相应的程序上机调试通过。
4.实验之后写出实验报告。
3.3实验过程1. 编写一个c语言源程序。
实现从键盘输入n个整数,在内存中自小到大排序后输出。
要求在vi或emacs中编辑、用gcc编译连接运行、用gdb进行调试,记录输出的结果并分析。
其中gdb用法见附录3的内容。
2.文件拷贝程序设计本程序的功能是实现两文件的拷贝,要求输入源文件名和目标文件名。
#include <stdio.h>#include <stdlib.h>main( ){char c;char name1[20],name2[20];FILE *fp1,*fp2;printf(“Input sorfilname:”);scanf(“%s”,name1);printf(“Input desfilname:”);scanf(“%s”,name2);fp1=fopen(name1,”r”);if(fp1==NULL){ printf(“Cannot open rfile \n”);exit (1);}fp2=fopen(name2,”w”);if(fp2==NULL){printf(“Cannot open wfile \n”); exit (1);}while((c=fgetc(fp1))!=EOF)fputc(c,fp2);fclose(fp1);fclose(fp2);printf(“copy complete!\n”);}此程序经过编译链接和执行后,其结果如图7所示。
Linux下C程序设计实验报告
实验2 Linux下C程序设计实验目的1、掌握Linux下C语言程序设计的基本步骤。
2、了解和掌握gcc编译器使用实验内容一、编写C语言程序:输出两行文字“how are you”,在Linux下编辑,编译,运行。
实验步骤:1. 编辑:$gedit hello.进入gedit编辑程序,保存。
2. 编译:$gcc –o hello hello.c。
没有错误出现命令提示符,ls命令查看生成hello可执行程序。
3, 运行:$./hello。
看到程序结果。
程序结果:[root@localhost ~]# gcc -o hello hello.c[root@localhost ~]# lsanaconda-ks.cfg hello hello.c~ install.log.syslogDesktop hello.c install.log[root@localhost ~]# ./hellohow are you[root@localhost ~]#二、编辑以下程序loop.c2. 编译 gcc loop.c –o loop3.(前台)运行 ./loop按Ctrl-C终止4. 后台运行 ./loop &(可多次使用该命令)5. 多次使用ps命令查看进程状态注意loop的运行时间注意ps -l命令和loop命令的父进程号均为shell进程6. 使用kill命令控制该进程暂停kill –STOP <该进程的进程号> 恢复kill –CONT <该进程的进程号> 终止kill –KILL <该进程的进程号>程序结果:[root@localhost ~]# gcc -o loop loop.c[root@localhost ~]# ./loop&[1] 21118[root@localhost ~]# psPID TTY TIME CMD21074 pts/3 00:00:00 bash21118 pts/3 00:00:12 loop21125 pts/3 00:00:00 ps[root@localhost ~]# psPID TTY TIME CMD21074 pts/3 00:00:00 bash21118 pts/3 00:00:16 loop21128 pts/3 00:00:00 ps[root@localhost ~]# kill -stop 21118[root@localhost ~]# psPID TTY TIME CMD21074 pts/3 00:00:00 bash21118 pts/3 00:00:49 loop21145 pts/3 00:00:00 ps[1]+ Stopped ./loop[root@localhost ~]# psPID TTY TIME CMD21074 pts/3 00:00:00 bash21118 pts/3 00:00:49 loop21148 pts/3 00:00:00 ps[root@localhost ~]# psPID TTY TIME CMD21074 pts/3 00:00:00 bash21118 pts/3 00:00:49 loop21153 pts/3 00:00:00 ps[root@localhost ~]# kill -cont 21118[root@localhost ~]# psPID TTY TIME CMD21074 pts/3 00:00:00 bash21118 pts/3 00:00:53 loop21159 pts/3 00:00:00 ps[root@localhost ~]# psPID TTY TIME CMD 21074 pts/3 00:00:00 bash21118 pts/3 00:00:55 loop21160 pts/3 00:00:00 ps[root@localhost ~]# kill -kill 21118 [root@localhost ~]# psPID TTY TIME CMD 21074 pts/3 00:00:00 bash21167 pts/3 00:00:00 ps[1]+ Killed ./loop [root@localhost ~]#。
Linux下的C编程实战
一、开发平台搭建1.引言Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳定性。
而近年来,Linux操作系统在嵌入式系统领域的延伸也可谓是如日中天,许多版本的嵌入式Linux系统被开发出来,如ucLinux、RTLinux、ARM-Linux等等。
在嵌入式操作系统方面,Linux的地位是不容怀疑的,它开源、它包含TCP/IP协议栈、它易集成GUI。
鉴于Linux操作系统在服务器和嵌入式系统领域愈来愈广泛的应用,社会上越来越需要基于Linux操作系统进行编程的开发人员。
浏览许多论坛,经常碰到这样的提问:“现在是不是很流行unix/linux下的c编程?所以想学习一下!但是不知道该从何学起,如何下手!有什么好的建议吗?各位高手!哪些书籍比较合适初学者?在深入浅出的过程中应该看哪些不同层次的书?比如好的网站、论坛请大家赐教!不慎感激!”鉴于读者的需求,在本文中,笔者将对Linux平台下C编程的几个方面进行实例讲解,并力求回答读者们关心的问题,以与读者朋友们进行交流,共同提高。
在本文的连载过程中,有任何问题或建议,您可以给笔者发送email:21cnbao@,您也可以进入笔者的博客参与讨论:/21cnbao。
笔者建议在PC内存足够大的情况下,不要直接安装Linux操作系统,最好把它安装在运行VMWare 虚拟机软件的Windows平台上,如下图:在Linux平台下,可用任意一个文本编辑工具编辑源代码,但笔者建议使用emacs软件,它具备语法高亮、版本控制等附带功能,如下图:2.GCC编译器GCC是Linux平台下最重要的开发工具,它是GNU的C和C++编译器,其基本用法为:gcc [options] [filenames]options为编译选项,GCC总共提供的编译选项超过100个,但只有少数几个会被频繁使用,我们仅对几个常用选项进行介绍。
实验三 Linux环境下的C程序设计
实验三Linux环境下的C程序设计实验目的:使学生熟悉Linux开发环境,加深对所学知识的理解,培养学生的学习兴趣,提高学生的动手能力。
实验内容1. 掌握linux环境下GNU c语言相关工具的原理和使用方法2. 掌握g;obc的作用3. 掌握Linux环境下c语言编程的一般方法。
实验步骤:1. 熟悉GNU 工具项目管理工具进入教材第五章对应的代码目录$ cd /linux_code/code/5/scropt运行scripy5-1.sh 脚本实现项目管理查看scripy5-1.sh的内容$ cat script5-1.sh反复运行该脚本,观察结果$ bash script5-1.sh$ bash script5-1.sh$ bash script5-1.sh运用GNU make工具进行项目管理观察makefile文件script5-2_makefile清楚目标代码$ make -f script5-2_makefile clean反复执行make -f script5-2_makefile,比较与shell脚本管理的区别$ make -f script5-2_makefile clean$ make -f script5-2_makefile clean$ make -f script5-2_makefile clean修改其总的一个文件,例如,app.c$ vi app.c 修改后重新保存继续运行$ make -f script5-2_makefile clean观察区别注意:如果直接键入$ make则相当于$ mmake -f makefile默认为makefile 或Makefile文件2. 掌握g;obc的作用汇编汇编代码exam5-7.s$ as exam5-7.s -o exam5-7.o链接目标代码exam5-7.o$ ld exam5-7.o -o exam5-7运行$ ./exam5-7比较查看exam5-8.c$ cat exam5-8.c编译与连接exam5-8.c$ gcc -o exam5-8 exam5-8.c运行$ ./exam5-83. 文件与目录的编程进入教材第六章对应的代码目录$ cd /linux_code/code/6/script$ make若有警告不予理会分别分析与运行相应代码。
linux下c程序的编写实验报告
linux下c程序的编写实验报告实验主题:在Linux下编写C程序的实验报告一、引言(150-200字)Linux是一种广泛应用的操作系统,具有高度开放性和灵活性,也是许多程序员首选的开发环境。
在Linux中,通过编写C程序可以实现各种应用和功能。
本实验旨在通过一步一步的说明和回答,介绍在Linux下编写C 程序的基本步骤和方法。
二、实验步骤(400-500字)1. 设置编程环境在Linux中编写C程序,首先需要安装相关的开发工具和编译器。
常用的编译器有gcc和clang,可以通过包管理器进行安装。
同时,也需要一个文本编辑器来编写C代码,比如vim或者emacs。
2. 编写Hello World程序Hello World程序是C语言学习的经典入门程序,它可以在屏幕上输出"Hello World"。
在文本编辑器中新建一个文件,命名为hello.c,然后在文件中输入以下代码:#include <stdio.h>int main() {printf("Hello World\n");return 0;}保存文件后,使用gcc编译器将该文件编译成可执行文件。
在终端中执行以下命令:gcc -o hello hello.c此时会生成一个名为hello的可执行文件。
通过执行该文件,可以在终端中看到输出结果"Hello World"。
3. 命令行参数和用户输入C程序可以接受命令行参数和用户输入,从而实现更复杂的功能。
在上一步编写的程序的基础上,我们尝试接收用户输入的姓名,并输出相应的问候语。
在hello.c文件中添加以下代码段:#include <stdio.h>int main(int argc, char *argv[]) {char name[100];printf("Please enter your name: ");scanf("s", name);printf("Hello, s!\n", name);return 0;}重新编译程序并执行,可以看到在终端中会提示用户输入姓名,并输出相应的问候语。
Linux 实验报告(三)Linux 下C 语言使用、编译与调试
vi是在LINUX上被广泛使用的中英文编辑软件。vi是visual editor的缩写,是
LINUX提供给用户的一个窗口化编辑环境。
进入vi,直接执行vi编辑程序即可。
例:$vi test.c
显示器出现vi的编辑窗口,同时vi会将文件复制一份至缓冲区(buffer)。vi先对缓
冲区的文件进行编辑,保留在磁盘中的文件则不变。编辑完成后,使用者可决定是否要
证的基础上,因此可以自由发布。
LINUX上的GNU C编译器(GCC)是一个全功能的ANCI C兼容编译器,而一
般LINUX(如SCO LINUX)用的编译器是CC。
1、使用GCC
通常后跟一些选项和文件名来使用GCC编译器。GCC命令的基本用法如下:
gcc [options] [filenames]
四、参考程序
main( )
{
printf("Hello,world!\n"); }
四、实验结果与结论:
1.在vi编辑器中编辑程序
2.生成文件
3.执行输出
五、实验中遇到的问题及解决方法:
此实验比较简单,在以前也做过类似的实验,不过此次实验后对Linux下C语言使用、编译与调试有了更深刻的理解
命令行选项指定的编译过程中的具体操作
2、GCC常用选项
GCC有超过100个的编译选项可用,这些选项中的许多可能永远都不会用到,但一
些主要的选项将会频繁使用。很多的GCC选项包括一个以上的字符,因此必须为每个选
项指定各自的连字符,并且就像大多数LINUX命令一样不能在一个单独的连字符后跟
一组选项。例如,下面的命令是不同的:
二、实验内容及要求:
1、用vi编写一个简单的、显示"Hello,World!"的C程序,用cc编译并观察编译后的结果
操作系统实验 Linux下C程序及运行结果
实验内容:
消息的创建,发送和接收
使用系统调用msgget(),msgsnd(), msgrev()及msgctl()编制一长度为1k的消息发送
和接收程序。
<程序设计>
为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,
SERVER和CLIENT,进行通信。
SERVER端建立一个Key为75的消息队列,等待其他进程发来的消息。当遇到类型
if(p2==0) putchar('c');
else putchar('a');
}
}
进程1截图如下:
进程2程序如下:
#include <stdio.h>
main( )
{
int p1,p2,i; while((p1=fork( ))==-1);
/*创建子进程p1*/
if (p1==0)
while((i=fork())==-1);
if(!i) CLIENT();
wait(0);
wait(0);
}
实验截图如下:
实验四 存储管理
1 实验目的:
通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。
2 实验内容:
通过随机数产生一个指令序列,共320条指令;
int tm_mon; //代表目前月份,从一月算起,范围从0-11 int tm_year; //从1900 年算起至今的年数
int tm_wday; //一星期的日数,从星期一算起,范围为0-6 int tm_yday; //从今年1月1日算起至今的天数,范围为0-365
int tm_isdst; //日光节约时间的旗标 };
Linux环境下的C编程
实验八Linux环境下的C编程一、实验要求和目的掌握用本文编辑器或Vi编写C程序,利用Gcc对所编写程序进行编译、检错、改错,生成可执行文件,然后使用Gdb对生成的可执行文件进行动态调试、纠错、改错,最后进行实例验证。
二、实验内容和步骤1、编程示例:设定一个整数N,计算1*2+2*3+…+N*(N+1)的和,分别在主函数和func()函数中实现。
(1)在root目录下新建/root/Cpram,在此目录下通过文本编辑器或Vi编写以下内容,并另存为Andx.c#include <stdio.h>#define N 99int func(int n){int sum=0,i;for(i=0;i<=n;i++)sum+=i*(i+1);return sum;}main(){int i;long result=0;for(i=1;i<=N ;i++)result+=i*(i+1);printf("result:1*2+...+%d*%d =%d\n",N,N+1,result);printf("result:1*2+...+%d *%d =%d\n",N,N+1,func(N));}(2)Gcc编译上述C语言源程序①生成预处理文件#gcc –E Andx.c –o Andx.i#cat Andx.i②生成汇编文件#gcc –S AndX.c –o AndX.s#cat AndX.s③生成目标文件#gcc –c Andx.c –o Andx.o④生成带警告信息的可执行文件#gcc –Wall Andx.c –o Andxw⑤为了动态调试的需要带上-g参数进行编译#gcc –g Andx.c –o Andx⑥执行文件Andx,并验证运行结果#./Andx(3)利用gdb进行简单的调试,熟悉相关指令①进入调试环境:#gdb②载入并执行上述可执行文件Andx(gdb)file ./Andx运行可执行文件(gdb)run③列出源代码文件(gdb)list Andx.c:1,30④设置断点,再次运行并单步执行(gdb)break 15运行可执行文件(gdb)run打印result的值(gdb)print result单步执行进入函数内部:(gdb)step单步执行:(gdb)step单步执行:(gdb)next单步执行:(gdb)next跳出循环体:(gdb)until⑤终止调试,并退出gdb环境(gdb)kill退出Gdb环境:(gdb)quit2、仿照示例,请选择以下题目中的任何一个进行编写程序,并对程序进行编译、调试,得到正确的运行结果(1)设定一个整数N,计算1*3+2*5+3*7…+N*(2N+1)的和(2)设定一个整数N,计算1*2+2*4+3*6…+N*2N的和(3)设定一个奇数N,计算 1*3+3*5+…+N*(N+2)的和(4)输入一个偶数N,计算1*3+2*4+3*5+4*2+…+N×(N+2)的和三、实验总结。
Linux下C编程
实验四Linux下C编程一、实验目的了解Linux下C编程的基本流程,理解Linux系统调用,掌握Linux 下C编程的基本方法。
二、实验环境VisualBox,Red Hat Enterprise Linux 6三、实验内容1.功能实现:创建两个子进程,父进程捕捉键盘上来的中断信号(即按^c键);捕捉到中断信号后,父进程向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:Child process1 is killed by parent! Child process2 is killed by parent!父进程等待两个子进程终止后,输出如下的信息后终止:Parent process is killed!代码如下:#include<sys/file.h>#include<stdio.h>#include<signal.h>#include<unistd.h>#include<stdlib.h>void waiting();void stop();int wait_mark;main(){signal(SIGINT,stop);int p1,p2,stdout;while ((p1=fork())==-1);if (p1>0){while((p2=fork())==-1);if (p2>0){wait_mark=1;waiting();kill(p1,10);kill(p2,12);wait(0);wait(0);printf(" parent process is killed !\n" );exit(0);}else{wait_mark=1;signal(12,stop);waiting();printf("chlid process 2 is killed by parrent!\n" );exit(0);}}else{wait_mark=1;signal(10,stop);waiting();printf("chlid process 1 is killed by parrent!\n" );exit(0);}}void waiting(){while (wait_mark == 1);}void stop(){wait_mark=0;}四、实验结果键盘按下Ctrl+C之后五、实验总结本次实验,主要了解Linux下C编程的基本流程,理解Linux系统调用,掌握Linux下C编程的基本方法,自己受益匪浅。
linux c语言 实验报告
linux c语言实验报告
《Linux C语言实验报告》
一、实验目的
本实验旨在通过使用Linux操作系统和C语言编程,掌握Linux环境下的C语
言编程技术,加深对Linux系统和C语言的理解和应用。
二、实验环境
本次实验使用的是Ubuntu操作系统,编程语言为C语言。
三、实验过程
1. 熟悉Linux环境:首先,我们需要熟悉Linux环境下的操作和命令,包括文件管理、编译和运行程序等。
2. 编写C语言程序:接着,我们编写了一些简单的C语言程序,包括输出
Hello World、计算器等功能。
3. 编译和运行程序:我们使用gcc编译器对编写的C语言程序进行编译,然后
在Linux环境下运行程序,观察程序的运行结果。
4. 调试程序:在程序运行过程中,我们发现了一些bug,通过调试程序来解决
这些问题,加深了对C语言的理解和掌握。
四、实验结果
通过本次实验,我们成功掌握了Linux环境下的C语言编程技术,能够熟练地
使用gcc编译器对C语言程序进行编译,并在Linux环境下运行程序。
同时,
我们也加深了对C语言的理解和应用,对程序的调试和优化有了更深入的认识。
五、实验总结
本次实验使我们对Linux操作系统和C语言编程有了更深入的了解,提高了我
们的编程能力和解决问题的能力。
同时,也为我们今后在Linux环境下进行软
件开发打下了良好的基础。
通过本次实验,我们不仅学到了很多知识,也提高了我们的动手能力和实际操
作能力。
我们相信,在今后的学习和工作中,这些知识和能力都会派上大用场。
