用linux下的C语言编程万年历,shell编程万年历月历和对应c语言程序.docx

44cb7578e1df5412b94317daaa3307ba.gifshell编程万年历月历和对应c语言程序.docx

下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。

2.下载的文档,不会出现我们的网址水印。

3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。

文档包含非法信息?点此举报后获取现金奖励!

下载文档到电脑,查找使用更方便

14.9

积分

还剩页未读,继续阅读

关 键 词:Shell语言

shell编程

资源描述:

shell下C语言编程

大家都知道Linux的shell终端很强大,很多命令和程序都可以通过shell来编译完成。实际上,shell命令以及linux系统内核都是用C和C++编写而成的。下面我就拿个C程序,在shell终端下来实现编译,作为一个小的教程让大家对此加深了解。

我编写的是一个C语言程序,输入年份和月份,可以输出打印月历。程序维护工具我使用的是主流的make工具,来实现自动编译连接的,对应编写的有一个简单的Makefile文件。下面,我开始正式演示。

首先,我们要确保有一个可供编译和开发的环境GCC,GCC是GNU推出的功能强大、性能优越的多平台编译器。它的安装非常简单,只需要在终端输入:sudo apt-get install build-essential 即可在线安装。如图一所示:

图一

下面,先给大家看看我编写的C语言程序源代码,对要演示的程序先有一个基本的了解。如图二、图三、图四和图五:

图二

图三

图四

图五

对源程序有所了解后,我给大家简单说下make工具的语法规则。一般的语法规则为:target(目标名) : dependency(依赖模块) + command(命令行)。本例中我的源代码程序是由一个名为“shaokunkun_calender.c组成,希望生成的可执行文件为“shaokunkun_calender.exe”,这时候我们就可以通过make编译命令来完成这项工作。本例中需要的Makefile文件,如图六所示:

图六

从图六中,我们可以看到,这个文件有三个依赖依赖描述语句,说明了三个目标、三个目标的依赖模块及由依赖模块生成目标的命令行。这时候,如果我们运行 make 工具,就可以自动生成可执行文件shaokunkun_calender.exe和目标文件。如图七所示:

图七

如果我们修改了源代码文件shaokunkun_calender.c,只要重新运行make命令,就可以自动编译修改过的文件并连接生成新的可执行文件。

如图七,已经生成了shaokunkun_calender.exe可执行文件。这时候,我们运行下这个程序,就实现了在shell下编译C程序。相关编译结果如图八所示:

图八

如果,如果我们运行make clean语句,就会执行目标clean所对应的命令行,把可执行文件shaokunkun_calender.exe及目标文件shaokunkun_calender.o全部删除。相关命令操作如图九所示:

图九

对于这个例子,大家注意,如果运行make ,不给出目标名称。根据系统的默认原则,会自动更新文件中的第一个目标。即 make shaokunkun_calender.exe。

其实,这个日历程序还可以用Shell语言编写,能更加方便。不仅能达到同样的显示效果,而且代码简洁明朗,非常便于我们维护和连接。下面,我将我的shell编程运行结果演示给大家,如图十所示:

图十

到目前为止,关于在shell环境下C语言的编程,我就基本给大家演示完了。在最后我还给大家示范了一个纯shell编程的例子,让大家来对比学习。相信大多数同学都掌握了吧!下面,我再把我的程序清单、源程序文件及makefile文件附加给大家,为了让大家能够更方便的了解我的教程!

程序清单:一个Makefile编译连接文件,一个名为shaokunkun_calender.c的源程序和一个名为shaokunkun_calender_shell的shell程序。如图十一所示:

图十一

源程序文件C语言代码:

#include int JgYr(int yr) { if (yr%4==0&&yr%100!=0||yr%100==0&&yr%400==0) return 1; else

return 0;

} int CalWkd(int yr,int mth) { int ds=0,i,rst,wkd; int mthd[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; if (JgYr(yr)) mthd[2]=29;

for (i=1;i12)

return 0;

if (JgYr(yr))

mthd[2]=29;

mtd=mthd[mth];

wkd=CalWkd(yr,mth);

showcld(wkd,mtd);

printf(" \n");

return 0;

}

Makefile文件代码,如下:

#Makefile simple exampleshaokunkun_calender.exe:shaokunkun_calender.o gcc -o shaokunkun_calender.exe shaokunkun_calender.o -lmshaokunkun_calender.o:shaokunkun_calender.c gcc -c shaokunkun_calender.cclean : rm shaokunkun_calender.exe *.o

到这里,我的整个教程也结束了,相信大家对shell下C语言的编程已经不再陌生。其实,shell功能远不仅如此,很多用处还更等我们去发现,大家一起努力吧!

展开阅读全文

温馨提示:

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。

2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。

3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。

4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。

5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。

6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。

7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

bb6249c6567dd4384e6ab3556cfc22ed.gif 

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

本文标题:shell编程万年历月历和对应c语言程序.docx

链接地址:https://www.renrendoc.com/p-17263663.html

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值