前言
以c语言编写一条排序和求平均数的命令为例
实现输入sort-average命令的三个参数
s 的功能分别为排序输入的十个数
a 求输入的五个数的平均数
q 退出sort-average命令
将所有源代码和makefile文件均放在/usr/local/src/sort-average下
1.编写源代码main.c,sort.c,average.c
2.编写makefile文件
3.编译安装测试sort-average命令
4.卸载sort-average命令所有相关文件
一.编写源代码main.c,sort.c,average.c,编写三个源码文件如下
mkdir /usr/local/src/sort-average
cd /usr/local/src/sort-average
1.vi main.c
我的main.c源码大概是这样:
#include<stdio.h>
int main(void)
{
void inputcommand(void);
char ch='\0';
inputcommand();
for(;;)
{
scanf("%c",&ch);
if(ch=='s')
{
sort();
inputcommand();
}
else if(ch=='a')
{
average();
inputcommand();
}
else if(ch=='q')
{
printf("exit...\n");
return 0;
}
}
}
void inputcommand(void)
{
printf("Please input 's' or 'a or 'q':");
}
2.vi sort.c
我的sort.c源码大概是这样:
#include<stdio.h>
void sort(void)
{
int num[10];
int i;
int j;
int temp;
printf("Please input 10 integers to sort:\n");
for(i=0;i<10;i++)
{
scanf("%d",&num[i]);
}
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(num[i]>num[j])
{
temp=num[i];
num[i]=num[j];
num[j]=temp;
}
}
}
printf("after sort:\n");
for(i=0;i<10;i++)
{
printf("%d ",num[i]);
}
printf("\n");
}
3.vi average.c
我的average.c源码大概是这样:
#include<stdio.h>
void average(void)
{
int num[5];
int average=0;
int i;
printf("Please input 5 integers to average:\n");
for(i=0;i<5;i++)
{
scanf("%d",&num[i]);
}
printf("average:\n");
for(i=0;i<5;i++)
{
average = average + num[i];
}
printf("%d\n",average/5);
}
二.编写makefile文件
vi makefile
makefile文件里面的代码大概是这样:
LIBS = -lm
OBJS = main.o sort.o average.o
main: ${OBJS}
gcc -o sort-average ${OBJS}
clean:
rm -f sort-average ${OBJS}
install:
install -m 755 sort-average $(RPM INSTALL ROOT) /usr/local/bin/sort-average
三.编译安装测试sort-average命令
1.根据makefile文件编译sort-average命令
make
2.安装sort-average命令
make install
3.测试sort-average命令
sort-average
Please input 's' or 'a or 'q':a
Please input 5 integers to average:
1 2 3 4 5
average:
3
Please input 's' or 'a or 'q':s
Please input 10 integers to sort:
5 6 4 3 2 1 54 6 3 4
after sort:
1 2 3 3 4 4 5 6 6 54
Please input 's' or 'a or 'q':q
exit...
四.卸载sort-average命令相关的文件
因为安装是只写了一个二进制文件sort-average到/usr/local/bin里面,所以我们只需要删掉这个文件即可
rm -f /usr/local/bin/sort-average
分享到:
相关推荐
CentOS7.2 openssh8.6p1离线升级包及升级步骤
centos7 CentOS 7是一个基于Red Hat Enterprise Linux(RHEL)源代码构建的自由开源Linux发行版,它是企业级操作系统的一个稳定、可靠和功能丰富的版本。以下是一些关于CentOS 7的主要特点和信息: 1. **稳定性和...
在已存在的Centos7上安装虚拟化软件包,为后续安装虚拟化设备提供帮助
# 注意:单个的安装包可能会依赖其它包(例如yum和yum-fastestmirror会相互依赖),所以我们可以把所有这些包放在一起,用一行命令将它们同时安装即可: rpm -ivh python-urlgrabber-3.10-8.el7.noarch.rpm rpm -ivh...
VMware安装CentOS7教程,主要适用于第一次安装CentOS7虚拟机及需要安装虚拟机,又不得不在去查找资料的人群,这里提供了PDF文档,可直接本地保存,需要时直接查看就行了。
compat-libstdc++-33-3.2.3-47.3.i386.rpm Centos7 安装oracle 所需软件包
CentOS7.3 openssh8.6p1离线升级包及升级步骤
YUM安装软件有一个最大弊端,就是软件包之间有一定的依赖关系,这是一个比较麻烦的事情。而YUM源安装就可以解决这个问题。 这里只用光盘作为YUM源为例讲解软件的安装,这是平时安装软件用得最多的。
CentOS6.5 openssh8.6p1离线升级包及升级步骤
centos7离线安装bzip2
mesos-deb-packaging, 用于 Debian,Ubuntu,CentOS,RHEL和Fedora的Mesos软件包 Mesos Debian封装构建脚本,用创建一个Mesos软件包,以便在集群中简单安装。Mesos是一个集群管理器,它可以跨分布式应用程序或者框架...
CentOS6.5 openssh8.6p1离线升级包及升级步骤
libzstd-1.5.5-1.el7.x86_64.rpm libicu-50.2-4.el7_7.x86_64.rpm postgresql15-15.3-1PGDG.rhel7.x86_64.rpm postgresql15-libs-15.3-1PGDG.rhel7....CentOS7 下 PostgreSQL15 离线安装 及 libzstd ,libicu 依赖包;
CentOS6.6 openssh8.6p1离线升级包及升级步骤
用于Linux系统离线安装gcc. 里面包含gcc 所有的依赖包,及本地机传递到Liunx服务器方法及安装方法。 安装碰到困难,评论一下。
CentOS 7是一个企业级的Linux发行版本,它源于RedHat免费公开的源代码进行再发行。 [2] CentOS 7内核更新至3.10.0、支持Linux容器、支持Open VMware Tools及3D图像即装即用、支持OpenJDK-7作为缺省JDK、支持内核空间...
树莓派centos之C语言自建多线程web服务器, 网页控制RGB灯
编写一个centos 7系统systemd自定义系统标准服务,自定义Centos7 Systemd Service自定义编写Service应用服务。
Centos7软件包的管理与安装,Linux,vmware
CentOS7安装MySQL 错误:软件包:akonadi-mysql-1.9.2-4.el7.x86_64