通过编写c语言程序,运行时实现打印另一个程序的源代码和行号
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语言程序,运行时实现打印另一个程序的源代码和行号的更多相关文章
- 小程序运行时如何助力传统APP转型?
小程序和H5或者RN有什么区别?优越性在哪里? 长期以来,移动互联网界一直在寻找一种既能获得Native原生的体验,又可以低门槛快速开发的技术.在这个过程中出现了很多尝试,例如React Native ...
- C语言程序运行时的一些细节
本章可以看作是 <Unix 环境高级编程>Ch7 的笔记. C 程序运行的开始和结束 一个可以运行的 C 语言总要有一个 main 函数,main 函数现在的完整定义是 int main( ...
- Swift和OC,是编译型语言、解释性语言、运行时语言
首先需要明确的一点是,什么是编译型语言和解释性语言 编译型语言,就是在其执行过程中需要先将其经过编译成机器码来给计算机识别的,其执行效率就会比较高这个是显而易见的,常见比如:C.C++ 而解释型语言, ...
- java程序运行时内存分配详解
java程序运行时内存分配详解 这篇文章主要介绍了java程序运行时内存分配详解 ,需要的朋友可以参考下 一. 基本概念 每运行一个java程序会产生一个java进程,每个java进程可能包含一个 ...
- Java程序运行时内存划分
1.Java程序跨平台运行的原因 主要原因是:各种平台的JVM和字节码文件 Java源程序--具体平台的机器代码文件---被编译器翻译成平台无关的Class文件,又用特定JVM运行字节码文件,JVM在 ...
- c/c++编译时,指定程序运行时查找的动态链接库路径
http://blog.csdn.net/tsxw24/article/details/10220735 c/c++编译时,指定程序运行时查找的动态链接库路径 分类: c/c++ linux 2013 ...
- C# 获取程序运行时路径
Ø 前言 开发中,很多时候都需要获取程序运行时路径,比如:反射.文件操作等..NET Framework 已经封装了这些功能,可以很方便的使用. C# 中有很多类都可以获取程序运行时路径,我们没必要 ...
- objc语言的运行时处理
在Objective-C中,消息是通过objc_msgSend()这个runtime方法及相近的方法来实现的.这个方法需要一个target,selector,还有一些参数.理论上来说,编译器只是把消息 ...
- WinCE C#程序,控制启动时仅仅能启动一个程序,使用相互排斥量来实现,该实现方法測试通过
</pre><pre code_snippet_id="430174" snippet_file_name="blog_20140718_5_46349 ...
随机推荐
- 015-PHP读取TXT记事本内容
<?php print("<H3>通过http协议打开文件</H3>\n"); // 通过 http 协议打开文件 if (!($myFile = f ...
- 096-PHP循环使用next取数组元素
<?php function return_item($arr,$num=0){ //定义函数 for($i=0;$i<$num;$i++){ //循环向前移动数组指针 next($arr ...
- JAVA作用域和排序算法介绍
一.作用域 1.作用域的概念 所谓的作用域是指引用可以作用到的范围. 一个引用的作用域是从引用定义位置到包裹它的最近的大括号的结束位置.只有在作用域范围内才可以访问到引用,超出作用域无法访问引用. 定 ...
- Python MySQL Order By
章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...
- Linux运维命令笔记一
1.Centos 无netstat 命令 yum -y install net-toolnetstat -tunp 2.Centos防火墙 systemctl stop firewalld.ser ...
- Petr#(字符串哈希)
CF113B Petr# 大概就是字符串匹配加一个字符串哈希判重.懒得打kmp,就用字符串哈希匹配了. 字符串哈希大概就是把字符串转成一个p进制的数,每一段字符串都有一个对应的哈希值.p尽量取质数,这 ...
- 每天一点点之css - 动画-一个圆绕着另一个圆动(绕着轨迹运动)
最近要开发一个类似星河的效果,需要小圆绕着一定的轨迹运动,这个时候我首先想到的是使用canvas来实现,在实现过程中发现这个实现起来不是很灵活,然后想到css3有动画也可以实现,下面是效果 注:图2是 ...
- 【pwnable.kr】random
pwnable从入门到放弃第七题. ssh random@pwnable.kr -p2222 (pw:guest) 目前为止做的最快的一道题... #include <stdio.h> i ...
- Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
计算年.月.日需要安装组件包 pip install python-dateutil 当前日期时间 import datetime print datetime.datetime.now() # 20 ...
- 一天一个设计模式——Abstract Factory抽象工厂模式
一.模式说明 前面学习了工厂方法(Factory Method)模式.在工厂方法模式中,在工厂方法模式中,父类决定如何生成实例,但并不决定所要生成的具体类,具体的处理交由子类来处理.这里学习的抽象工厂 ...