shell编程万年历月历和对应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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

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

关于本文

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

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

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

  1. Linux下的静态链接库和动态链接库编程

    Linux下的静态链接库和动态链接库编程 参考: Linux下的静态链接库和动态链接库编程 - Histring - 博客园 Mac下静态库和动态库的创建和使用_C/C++_vincent2610的专 ...

  2. 南京邮电大学嵌入式系统开发实验5:嵌入式Linux下LED报警灯驱动设计及编程

    实验5  嵌入式Linux下LED报警灯驱动设计及编程 一.实验目的 理解驱动本质,掌握嵌入式Linux系统下驱动开发相关知识,包括端口寄存器访问.接口函数编写.和文件系统挂接.注册及相关应用编程等知 ...

  3. linux脚本查看系统内存,二个linux下查看内存使用情况的shell脚本()

    摘要 腾兴网为您分享:二个linux下查看内存使用情况的shell脚本(),政务易,悦作业,优化大师,王者荣耀等软件知识,以及单向历app,优路教育app,kimoji,开关电源设计软件,皮皮高清影视 ...

  4. Linux后台开发系列之「06.Shell 编程基础

    程序员的工作台 版权声明:本文为 cdeveloper 原创文章,可以随意转载,但必须在明确位置注明出处! 本文摘要 本文主要介绍 Linux Shell 编程的基础知识,包含下面 8 个方面: Sh ...

  5. linux下交叉编译libusb的方法及编译一个使用了libusb库的test程序的方法

    linux交叉编译libusb的方法 下载libusb 下载网址:libusb - Browse Files at SourceForge.net 交叉编译libusb 将下载好的libusb压缩包解 ...

  6. linux下编辑aacc.sh脚本命令,Shell命令实战详解

    1.按照指定的某段路径,进行数据拷贝. =>head Assembly.txt/ifs1/ST_ENV/USER/liyiyuan/liushanlin/1KITE_1_2/110817_I80 ...

  7. linux下开机自动启动,定时运行shell脚本

    Shell 脚本与window/dos 下的批处理相似,也就是用各类命令预先放入一个文件中,方便一次性执行的的一个程序文件,主要是方便管理员进行设置或者管理用. 一.shell脚本 在Linux下,我 ...

  8. linux下编译mangos,Linux下MANGOS服务端自动重启Shell启动脚本

    下面是一个Linux下支持的一个启动服务端的Shell代码.可以实现服务端当机后自动重新启动. 同时可以支持LINUX下用GDB对mangos进行当机调试,输出结果到crashes/Server.lo ...

  9. 一文详解shell编程(shell编程笔记)

    本文为快速入门教程,如果你所在的行业需要用到很深入的shell脚本知识,可参考书籍<Linux命令行与shell脚本编程大全>,豆瓣链接:https://book.douban.com/s ...

最新文章

  1. 利用Libra进行机器学习和深度学习
  2. Vishay将MCW 0406 AT系列精密宽端子薄膜片式电阻欧姆值降至业内最低
  3. 数据分析进阶 数据质量
  4. Python学习笔记四(Python OS模块)
  5. vue项目接口地址暴露_vue项目打包后可以配置接口地址的方法
  6. ResourceLoader 获取资源
  7. ubuntu11.10乱码解决
  8. 视觉SLAM十四讲学习笔记-第三讲-相似、仿射、射影变换和eigen程序、可视化演示
  9. idea—开启Run DashBoard
  10. java面试之闭包(closure)
  11. linux安装chrome_chrome 的安装及出现密钥问题(ubuntu16.04)
  12. Javaworkers团队第五周项目总结
  13. Request.GetOwinContext()打不到
  14. AutoRunner简介
  15. Codeforces 853 A. Planning
  16. 【AI应用】NVIDIA Tesla T4的详情参数
  17. 2022前端面试题上岸手册-浏览器部分
  18. Centos 6 yum安装出错
  19. 三十分钟做一个网页游戏
  20. 数学知识的一些常用公式

热门文章

  1. 数据库笔记——day04
  2. 7-4 后天 (5分)
  3. phoenix5表结构变更,修改字段类型
  4. 无代码开发平台云表,让企业系统实现自我控制
  5. Python 创建词云 注意事项
  6. unexpected output in sfdisk --version [sfdisk,来自 util-linux 2.23.2]后端盘问题
  7. 网络流(2)——用Ford-Fullkerson算法寻找最大流
  8. 基于BP神经网络的手写体数字识别matlab仿真实现
  9. 敏捷领导力——组织敏捷转型的脚手架(Scaffolding)模型解析
  10. 数据处理技巧(4):txt/word等快速选中部分数据