2017年6月1日程序编写说明:

1.实现行号的打印,实现代码的读取和输出,理解主函数中的参数含义。

2.对fgets函数理解不够

3.对return(1); return 0的含义理解不够

4.未实现页码的打印

 /*************************************************************************
> File Name: my_print_program.c
> Author: Mr.Yang
> Purpose:自己编写程序实现打印一个程序的源代码和行号(即运行./my_print_program my_print_program.c即可打印源代码和行号,实现
功能和Linux中cat my_print_program.c功能类似)
> Created Time: 2017年06月01日 星期四 15时38分33秒
************************************************************************/ #include <stdio.h>
#include <stdlib.h> /*实现从命令行读取可执行程序的路径和相关参数*/
int main(int argc,char *argv[])
{
char buffer[];
FILE *fp; /*进行argc判断*/
if(argc < )
{
puts("\n请按照标准命令输入,例如:\"./my_print_program test.c\",其中test.c为你需要打印的源代码!\n");
return();//思考return (1) return 0有什么区别,它们实现的意义是什么?此处用return (1)可以实现程序执行if语句时不报段错误
} /*打开代码文件*/
fp = fopen(argv[],"r"); /*读取源代码*/
int line = ; /*思考为什么fgets中中间参数为256,使用其它值可否,它代表着什么实际的意义?*/
while(fgets(buffer,,fp) != NULL)
{
/*调试能打印*/
//puts("1");
fprintf(stdout,"%4d:%s",line++,buffer);
} fclose(fp); return ;
}

执行结果如下:

通过编写c语言程序,运行时实现打印另一个程序的源代码和行号的更多相关文章

  1. 小程序运行时如何助力传统APP转型?

    小程序和H5或者RN有什么区别?优越性在哪里? 长期以来,移动互联网界一直在寻找一种既能获得Native原生的体验,又可以低门槛快速开发的技术.在这个过程中出现了很多尝试,例如React Native ...

  2. C语言程序运行时的一些细节

    本章可以看作是 <Unix 环境高级编程>Ch7 的笔记. C 程序运行的开始和结束 一个可以运行的 C 语言总要有一个 main 函数,main 函数现在的完整定义是 int main( ...

  3. Swift和OC,是编译型语言、解释性语言、运行时语言

    首先需要明确的一点是,什么是编译型语言和解释性语言 编译型语言,就是在其执行过程中需要先将其经过编译成机器码来给计算机识别的,其执行效率就会比较高这个是显而易见的,常见比如:C.C++ 而解释型语言, ...

  4. java程序运行时内存分配详解

    java程序运行时内存分配详解 这篇文章主要介绍了java程序运行时内存分配详解 ,需要的朋友可以参考下   一. 基本概念 每运行一个java程序会产生一个java进程,每个java进程可能包含一个 ...

  5. Java程序运行时内存划分

    1.Java程序跨平台运行的原因 主要原因是:各种平台的JVM和字节码文件 Java源程序--具体平台的机器代码文件---被编译器翻译成平台无关的Class文件,又用特定JVM运行字节码文件,JVM在 ...

  6. c/c++编译时,指定程序运行时查找的动态链接库路径

    http://blog.csdn.net/tsxw24/article/details/10220735 c/c++编译时,指定程序运行时查找的动态链接库路径 分类: c/c++ linux 2013 ...

  7. C# 获取程序运行时路径

    Ø  前言 开发中,很多时候都需要获取程序运行时路径,比如:反射.文件操作等..NET Framework 已经封装了这些功能,可以很方便的使用. C# 中有很多类都可以获取程序运行时路径,我们没必要 ...

  8. objc语言的运行时处理

    在Objective-C中,消息是通过objc_msgSend()这个runtime方法及相近的方法来实现的.这个方法需要一个target,selector,还有一些参数.理论上来说,编译器只是把消息 ...

  9. WinCE C#程序,控制启动时仅仅能启动一个程序,使用相互排斥量来实现,该实现方法測试通过

    </pre><pre code_snippet_id="430174" snippet_file_name="blog_20140718_5_46349 ...

随机推荐

  1. Assignment写作谨慎学术抄袭是关键

    学术写作(Academic Writing)作为留学生涯的“必修课”,总是让闻者叹气,抓耳挠腮.初入课堂的留学生,更是缺乏写作经验不知从何下笔,只想仰天长啸“Essay真的好难啊!!”面对一个Essa ...

  2. kafka创建topic,生产和消费指定topic消息

    启动zookeeper和Kafka之后,进入kafka目录(安装/启动kafka参考前面一章:https://www.cnblogs.com/cici20166/p/9425613.html) 1.创 ...

  3. Tornado的XSRF防范

    XSRF XSRF即为跨站请求伪造 这个漏洞利用了浏览器的一个允许恶意攻击者在受害者网站注入脚本使未授权请求代表一个已登录用户的安全漏洞. 了解XSRF 当一个网站的图片SRC属性为另一个网站的链接时 ...

  4. Mac安装vue产生错误

    npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/webpack/node_modules/_ ...

  5. <mvc:default-servlet-handler />说明

    优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往 ...

  6. VS Code 配置vue开发环境

    一.插件 网上搜索vscode插件的文章,动辄十几个,其实根本用不了那么多,很多插件的作用还有重叠,电脑性能还被白白浪费.这里精简为主,每一个插件都发挥它最大的作用,并尽量说明它们的作用 Vetur ...

  7. HashMap核心功能源码浅析

    1.引子 "HashMap"由“hash”和“map"两个单词组成,这里的”map"表示“映射”而不是“地图”的意思,两个单词连起来就是“哈希映射表”.Map是 ...

  8. c++ 正则表达式查找

    C++ 正则表达式的使用 需求: 字符串含有除[0-9a-z]之外的字符,均返回失败! #include<regex> smatch result; string reg_str = &q ...

  9. POJ 1547:Clay Bully

    Clay Bully Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8349   Accepted: 4711 Descri ...

  10. luogu P4219 [BJOI2014]大融合

    题解:原来LCT也能维护子树信息,我太Naive了 用LCT维护当前子树节点个数 具体做法维护siz[x]=当前Splay子树和指向当前Splay子树的虚边所代表的节点个数 auxsiz[x]=指向x ...