一起talk C栗子吧(第一百二十七回:C语言实例--查看main函数的參数)
各位看官们,大家好,上一回中咱们说的是static关键字的样例,这一回咱们说的样例是:查看main函数的參数。闲话休提,言归正转。让我们一起talk C栗子吧!
看官们。我们在第五十七回中介绍过main函数的參数,假设有看官忘记的话,能够点击这里查看曾经的内容。在曾经的内容中。我们介绍的是在程序中直接操作main函数的參数。也就是直接操作argv和argc。这样的方法须要提前在代码中编写相关的内容来操作argv和argc。假设我们想在程序执行时查看main函数的參数,怎么办呢?有看官说,能够再代码中加入操作argv和argc的内容。
这个时候再返回代码中编写操作argv和argc的代码就有点晚了。我们还须要又一次编译代码。把大把的时间白白浪费在了等待程序编译上,真是太可惜了。
台下已经有看官在摇头叹气呢。
看官莫要灰心,我们今天来介绍第二种查看main函数參数的方法。通过该方法能够在程序执行时查看程序中main函数的參数。
Linux中有一个特殊的文件系统叫作:proc。该文件系统中存放关Linux系统相关的信息。今天我们仅仅介绍当中的一种信息。那就是进程的命令行參数,也就是我们要介绍的main函数的參数。
接下来我们通过样例来说明怎样查看进程的命令行參数,也就是我们要介绍的main函数的參数。
#include <stdio.h>
int main(int argc, char *argv[])
{
int i = 0;
while(i++ < argc*3)
sleep(1);
return 0;
}
我们写一些简单的代码,代码中使用sleep函数让程序临时一段时间,该时间等于程序的參数个数乘以三。单位为秒。
我们把上面的代码保存到一个文件里,然后使用gcc编译该文件,而且生成名为s的可执行文件。
我们在终端中执行该程序,详细的命令例如以下:
./s -a -b & //在后台执行该程序,而且传递给程序两个參数:-a和-b
[1] 3231 //程序在后台执行中。同一时候终端中显示该程序的进程ID
cat /proc/3231/cmdline //使用cat命令查看进程的命令行參数
./s-a-b //终端中显示也进程的命令行參数。这里省略了终端的提示信息
[1]+ Done ./s -a -b //程序在后台执行完毕
从上面的执行结果中能够看到,我们在终端中通过cat命令能够直接查看进程的命令行參数。也就是该进程中main函数的參数:-a -b。该參数正是我们在执行程序时传递给程序的參数。
“ /proc/3231/cmdline”是什么意思哟?这时有看官在提问了,看官莫急。我们刚才说了proc是一种特殊的文件系统,而该文件系统中有非常多文件夹,这些文件夹中有一部分文件夹名称是数字,这些以数字为文件夹名的文件夹中包括有进程相关的信息。而文件夹名就是进程的PID。在该类型的文件夹中有一个叫cmdline的文件,该文件里的内容就是进程的命令行參数。也就是main函数的參数。我们在上面的样例中执行命令:cat /proc/3231/cmdline其意思就是查看PID为3231进程的命令行參数。
看官们,该方法能够在程序执行或者调试程序的过程中直接查看main函数的參数。
这样就不须要我们提前在代码中编写操作argv和argc的内容了,而且能够节省又一次编译程序的时间。真是一举两得呀!
各位看官,关于查看main函数參数的样例咱们就讲到这里。欲知后面还有什么样例。且听下回分解 。
一起talk C栗子吧(第一百二十七回:C语言实例--查看main函数的參数)的更多相关文章
- 一起talk C栗子吧(第一百二十一回:C语言实例--线程知识体系图)
各位看官们.大家好,上一回中咱们说的线程属性的样例.这一回咱们说的样例是:线程知识体系图.闲话休提.言归正转. 让我们一起talk C栗子吧! 我们在前面的章回中介绍了与线程相关的知识,在今天的章回中 ...
- 第一百二十七节,JavaScript,JSON数据类型转换,数据转换成字符串,字符串转换成数据
第一百二十七节,JavaScript,JSON数据类型转换,数据转换成字符串,字符串转换成数据 学习要点: 1.JSON语法 2.解析和序列化 前两章我们探讨了XML的结构化数据,但开发人员还是觉得这 ...
- 一起talk C栗子吧(第一百二十三回:C语言实例--显示变量和函数的地址)
各位看官们,大家好,上一回中咱们说的是多线程的样例.这一回咱们说的样例是:显示变量和函数的地址. 闲话休提,言归正转.让我们一起talk C栗子吧! 在编敲代码时,有时候须要获取程序中变量和函数的地址 ...
- 第一百二十六节,JavaScript,XPath操作xml节点
第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准 ...
- 第三百二十七节,web爬虫讲解2—urllib库爬虫—基础使用—超时设置—自动模拟http请求
第三百二十七节,web爬虫讲解2—urllib库爬虫 利用python系统自带的urllib库写简单爬虫 urlopen()获取一个URL的html源码read()读出html源码内容decode(& ...
- 一起talk C栗子吧(第一百二十六回:C语言实例--statickeyword)
各位看官们,大家好,上一回中咱们说的内置宏的样例.这一回咱们说的样例是:static关键字. 闲话休提.言归正转. 让我们一起talk C栗子吧! 看官们,C语言提供了static关键字.它常常出如今 ...
- 一起talk C栗子吧(第一百二十四回:C语言实例--内置宏)
各位看官们,大家好,上一回中咱们说的是显示变量和函数地址的样例,这一回咱们说的样例是:内置宏.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在编译程序的时候,假设有语法错误,编译器就 ...
- 一起talk C栗子吧(第一百三十三回:C语言实例--创建进程时的内存细节)
各位看官们.大家好,上一回中咱们说的是从内存角度看进程和线程的样例.这一回咱们说的样例是:创建进程时的内存细节.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们.我们都知道使用fork函数能 ...
- 一起talk C栗子吧(第八十七回:C语言实例--使用管道进行进程间通信概述)
各位看官们,大家好.上一回中咱们说的是进程间通信的样例.这一回咱们说的样例是:使用管道进行进程间通信. 闲话休提,言归正转. 让我们一起talk C栗子吧! 我们在前面的的章回中介绍了使用管道进行进程 ...
随机推荐
- Java 线程池的原理与实现 (转)
最近在学习线程池.内存控制等关于提高程序运行性能方面的编程技术,在网上看到有一哥们写得不错,故和大家一起分享. [分享]Java 线程池的原理与实现 这几天主要是狂看源程序,在弥补了一些以前知 ...
- Workshop:用Python做科学计算
Python是程序史上最流行的开源语言之一. 仅在官方包索引PyPi上就已经发布了超过10万个开源软件包,而且还有更多的项目. 在SciPy的麾下,有一个成熟的python包生态系统,可以使用Pyth ...
- 解决在IE9,IE10浏览器下,程序没有任何错误,easy ui页面不加载任何数据的问题
对于web应用程序,经常用到开发人员工具,按F12,可以调试脚本,可以查看监视网络,查看各页面加载时间,非常方便,今天在调试js时,不小心打开了兼容性视图, 之后每次打打开页面时,均不显示页面post ...
- Mac Xcode下配置OpenGL
暂时搁置一下iOS,又要去弄一些杂七杂八的东西了,毕竟是学校的作业,还是要完成的. 作业是让我们用OpenGL做一个茶壶- -.而且要三维立体能旋转的那种. 好吧这些都不是重点,重点是我最终决定在Ma ...
- 扩展方法 DataTable的ToList<T>
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.T ...
- 自制MVC框架CRUD操作、列表、分页显示插件介绍
这里涉及到的操作都是引用自Stephen.DALService数据层.数据访问层实现方式在后文中我会仔细的说明,先说明一下数据操作集成的插件. 1).InsertAttribute 用于插入记录. 状 ...
- 转在Python中实现PageFactory模式
转自: http://www.cnblogs.com/fnng/p/5092383.html 关于 PageFactory 的概念主要是Java中内置了PageFactory类. import org ...
- Asp.net2.0里的SessionPageStatePersister
备注: ASP.NET 页可在处理和提供任何网页所必需的原本无状态 HTTP 请求与响应之间存储 Page 状态信息.此状态称为“视图状态”. ASP.NET 的默认持久性机制是使用 HiddenFi ...
- poj1860--Currency Exchange
Bellman-ford算法的反向应用--正循环检查 /** \brief poj 1860 Bellman-Ford * * \param date 2014/7/24 * \param state ...
- [svc][op]网站504无法访问问题处理
504 Gateway Time-out 网站出现了这种情况 架构是:tomcat+nginx, 想通过domain.com 跳转到www.domain.com. 客户端访问流程 客户端--dns-- ...