Linux下C程序的编写(操作系统实验)

这篇具有很好参考价值的文章主要介绍了Linux下C程序的编写(操作系统实验)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验题目:  Linux下C程序的编写                           

实验目的:  (1)掌握Linux下C程序的编写、编译与运行方法;

(2)掌握gcc编译器的编译过程,熟悉编译的各个阶段;       

(3)熟悉Makefile文件的编写格式和make编译工具的使用方法。        

实验环境(硬件和软件) VMware Workstation,Linux                                  

实验内容:

练习使用gcc编译器编译C程序并执行,编写Makefile文件,使用make工具编译程序并执行。具体内容如下:

  1. 编写简单C程序,功能为在屏幕上输出“Hello gcc!”。利用该程序练习使用gcc编译器的E,S,c,o,g选项,观察不同阶段所生成的文件,即*.c,*.i,*.s,*.o文件和可执行文件。
  2. 编写一个由头文件greeting.h、自定义函数greeting.c、主函数myapp.c构成的C程序,并根据这三个文件的依赖关系编写Makefile文件。

实验步骤:

(1)1.创建空文档,修改名称为myhello.c,出入程序代码,保存并退出。
2.打开终端,使用gcc命令对上述文档分阶段编译。
3.利用ls命令查看编译过程产生的各个文件。即myhello.c、myhello.s、myhello.o文件和可执行文件myhello.c。

(2)Makefile文件的编写。使用make工具编译程序,在终端提示符后输入“make”,并按Enter。

实验数据记录:

    1. vim创建空文档myhello.c,输入程序代码,Esc后:wq保存并退出。
    2. vim myhello.c
    3. /*----------myhello.c----------*/
      
      #include <stdio.h>
      
      int main()
      
      {
      
              printf("Hello gcc!\n");
      
              return 0;
      
      }

编写一个由头文件greeting.h、自定义函数文件greeting.c、主函数文件myapp.c 构成,linux,c语言,运维

1.2使用gcc命令对上述文档分阶段编译。

编写一个由头文件greeting.h、自定义函数文件greeting.c、主函数文件myapp.c 构成,linux,c语言,运维

gcc -E myhello.c -o myhello.i  # 预处理阶段

gcc -S myhello.i -o myhello.s  # 编译阶段

gcc -c myhello.s -o myhello.o  # 汇编阶段

gcc myhello.o -o myhello       # 链接阶段

还可以直接编译gcc myhello.c -o myhello

3.利用ls命令查看编译过程产生的各个文件。即myhello.c、myhello.s、myhello.o文件和可执行文件myhello.c。

编写一个由头文件greeting.h、自定义函数文件greeting.c、主函数文件myapp.c 构成,linux,c语言,运维

运行结果:

编写一个由头文件greeting.h、自定义函数文件greeting.c、主函数文件myapp.c 构成,linux,c语言,运维

(2)Makefile文件的编写。使用make工具编译程序,在终端提示符后输入“make”,并按Enter。

2.1myapp.c文件:  (vim myapp.c创建)

#include <stdio.h>

#include "greeting.h"

#define N 10

int main()

{

        char name[N];

        printf("Your name,please:");

        scanf("%s",name);

        greeting(name);

        return 0;

}

编写一个由头文件greeting.h、自定义函数文件greeting.c、主函数文件myapp.c 构成,linux,c语言,运维

2.2 greeting.h

#ifndef _GREETING_H

#define _GREETING_H

void greeting(char *name);

#endif


编写一个由头文件greeting.h、自定义函数文件greeting.c、主函数文件myapp.c 构成,linux,c语言,运维

2.3greeting.c


#include <stdio.h>

#include "greeting.h"

void greeting(char *name)

{

        printf("Hello %s",name);

}

编写一个由头文件greeting.h、自定义函数文件greeting.c、主函数文件myapp.c 构成,linux,c语言,运维

2.4Makefile文件和make

vim Makefile创建并输入代码

myapp:greeting.o myapp.o

        gcc myapp.o greeting.o -o myapp

greeting.o:greeting.c greeting.h

        gcc -c greeting.c

myapp.o:myapp.c greeting.h

        gcc -c myapp.c

clean:

        rm -rf *.o

编写一个由头文件greeting.h、自定义函数文件greeting.c、主函数文件myapp.c 构成,linux,c语言,运维

make编译及最终结果:

编写一个由头文件greeting.h、自定义函数文件greeting.c、主函数文件myapp.c 构成,linux,c语言,运维文章来源地址https://www.toymoban.com/news/detail-861227.html

到了这里,关于Linux下C程序的编写(操作系统实验)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux操作系统】【综合实验一 Linux操作基础】【浅试Linux命令】

    Linux均以文件形式存在 本文出现的命令浅尝辄止,具体使用参考文档即可 解决一个任务的方法很多,本文仅浅试了一些简单的命令 要求掌握Linux基础操作,熟悉Linux行界面,并 明白操作的原理以及目的(难) ;熟悉Linux系统环境。 通过这个第一阶段实验,要求掌握以下操作

    2023年04月08日
    浏览(90)
  • 头歌操作系统Linux实验

    Linux操作系统 第1关 Linux初体验 cd / ls -a 第2关 Linux常用命令 touch newfile mkdir newdir cp newfile newdir/newfileCpy 第3关 Linux 查询命令帮助语句 man 3 fopen Linux文件/目录管理 第1关 Linux之文件创建/删除 touch file1 file2 rm oldFile1 oldFile2 第2关 Linux之目录创建/删除 mkdir newDir1 newDir2 rm oldDir1 -r old

    2024年02月10日
    浏览(30)
  • Linux操作系统实验三 文件管理(一)

      1.实验目的与要求 了解Linux文件系统目录结构 掌握目录管理的相关操作 掌握文件管理的相关操作 2.实验平台 实验室安装的实验环境(Linux操作系统)和头歌(www.educoder.net)实验平台(课程实验) 3.实验内容 文件系统目录结构理论知识练习 linux 下目录的创建、应用、查看、

    2024年02月03日
    浏览(45)
  • 操作系统实验·字符设备驱动程序

    编写一个简单的字符设备驱动程序,该字符设备并不驱动特定的硬件, 而是用内核空间模拟字符设备,要求该字符设备包括以下几个基本操作,打开、读、写和释放,并编写测试程序用于测试所编写的字符设备驱动程序。在此基础上,编写程序实现对该字符设备的同步操作。

    2024年02月10日
    浏览(45)
  • 【Linux操作系统】【综合实验三 用户帐号、文件系统与系统安全管理】

    要求掌握Linux系统用户的创建、删除与管理操作;熟悉Linux文件系统的管理模式,学会创建用户文件系统并装载和卸载文件系统;掌握超级用户的管理方式与权限,并实施对普通用户的管理;熟悉Linux系统安全机制与相关管理方法。 通过这个第三阶段实验,要求掌握以下操作与

    2023年04月14日
    浏览(30)
  • 【操作系统实验】Ubuntu Linux 虚拟机用户管理

    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。 在Linux系统中,任何文件都属于某一特定用户,而任何用户都隶属于至少一个用户组。 用户名(username) :每个用户账号都

    2023年04月24日
    浏览(67)
  • 【操作系统实验6】CPU调度程序模拟实现

    加深对操作系统CPU调度以及调度算法的理解 1) 单处理器环境下,针对最短作业优先算法(SJF)和优先级调度算法(Priority),分别模拟实现抢占调度和非抢占调度的调度程序 设计使用三个队列,分别为就绪队列(readyQueue)、运行队列(runningQueue)、等待队列(waitingQueue) 进程状态三种,

    2024年02月06日
    浏览(37)
  • 【Linux操作系统】【综合实验三 用户帐号、文件系统与系统安全管理】【未整理】

    要求掌握Linux系统用户的创建、删除与管理操作;熟悉Linux文件系统的管理模式,学会创建用户文件系统并装载和卸载文件系统;掌握超级用户的管理方式与权限,并实施对普通用户的管理;熟悉Linux系统安全机制与相关管理方法。 通过这个第三阶段实验,要求掌握以下操作与

    2024年02月06日
    浏览(36)
  • Linux操作系统实验:生产者和消费者问题

    “生产者消费者”问题是一个著名的同时性编程问题的集合。通过编写经典的”生产者消费者”问题的实验,读者可以进一步熟悉 Linux 中多线程编程,并且掌握用信号量处理线程间的同步互斥问题。 VMware Workstation Pro “生产者消费者”问题描述如下。 有一个有限缓冲区和两

    2024年02月06日
    浏览(40)
  • 杭电操作系统实验一 --- Linux内核编译及添加系统调用(arm架构华为云)

    掌握Linux 内核的编译与安装 掌握Linux 系统调用基本概念 设计和添加linux系统调用         (1)修改或返回指定进程的优先级(nice值和prio值)(详见教材P328)提示:可能参考的内核函数:set_user_nice().         (2)改变主机名称为自定义字符串(自选题目)   1、 L

    2023年04月20日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包