linux环境有关编程(1)

原创 2012年03月30日 11:12:37
getopt(分析命令行参数)
   #include<unistd.h>
   int getopt(int argc,char * const argv[ ],const char * optstring);
  extern char *optarg;
  extern int optind, opterr, optopt;

  函数说明 getopt()用来分析命令行参数。

       参数argc和argv是由main()传递的参数个数和内容。

       参数 optstring为选项字符串, 告知 getopt()可以处理哪个选项以及哪个选项需要参数。

       如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。

       如果在处理期间遇到了不符合optstring指定的其他选项getopt()将显示一个错误消息,并将全域变量optarg设为“?”字符。

      如果不希望getopt()印出错信息,则只要将全域变量opterr设为0即可。

  getopt() 所设置的全局变量包括:

  optarg——指向当前选项参数(如果有)的指针。 optind——再次调用 getopt() 时的下一个 argv 指针的索引。 optopt——最后一个已知选项。

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>

int main(int argc,char *argv[])
{
	int opt;

	while((opt = getopt(argc,argv,":if:lr")) != -1)
	{
		switch(opt)
		{
		case 'i':
		case 'l':
		case 'r':
			printf("option : %c \n",opt);
			break;
		case 'f':
			printf("filename : %s\n",optarg);
			break;
		case ':':
			printf("option needs a value\n");
			break;
		case '?':
			printf("Unknow option : %c\n",optopt);
			break;
		}
	}
	for(;optind < argc;optind++)
	{
		printf("Argument: %s\n",argv[optind]);
	}
	exit(0);
}
./args -i -lr 'hi there ' -f fred.c -q

option:i

option: l

option:r

filename: fred.c

unknow option:q

argument: hi there

版权声明:本文为博主原创文章,未经博主允许不得转载。

linux环境有关编程(3)

environ 变量 #include extern char **environ; #include #include extern char **environ; int main(...
  • querdaizhi
  • querdaizhi
  • 2012年03月30日 11:38
  • 379

linux环境有关编程(2)

C语言通过putenv和getenv函数来访问环境变量。 #include char *getenv(const char *name); int putenv(const char *stri...
  • querdaizhi
  • querdaizhi
  • 2012年03月30日 11:34
  • 374

【Linux&C++】Linux环境下C++编程

在阅读的过程中有任何问题,欢迎一起交流 邮箱:1494713801@qq.com   QQ:1494713801   在linux下,开发工具被切割成一个个独立的小工具。各自处理不同的问题。例如: ...
  • u010515761
  • u010515761
  • 2015年06月18日 16:03
  • 1516

linux版ArcGIS Server地图服务发布问题

部署环境:Redhat 5.4 X64 Oracle 10.0.2.4 X64 ArcSDE 10 ArcGIS Server 10 问题:ArcGIS Server安装正常,配好图后将chi...
  • SYDBC
  • SYDBC
  • 2013年12月04日 16:00
  • 1406

linux 环境下c++编程书目推荐

书籍推荐(假定有基本C基础) 深入理解计算机系统 § C学习 Ø C陷阱与缺陷 Ø C和指针 § 基本C++学习 Ø Essential C++ Ø Effective C++ Ø M...
  • zhuimengzh
  • zhuimengzh
  • 2011年11月16日 19:24
  • 4694

Linux编程-Linux进程(1)-进程环境

Linux进程环境 一、 进程启动 进程基本过程是内核调用exec函数,调用C程序的启动历程exit,exit从内核获取环境表及参数,传递给main。大致如下 内核exec-》exit(main(ar...
  • Magina3
  • Magina3
  • 2014年12月21日 03:18
  • 399

Linux下C++的编程——开发环境搭建与第一个程序

上一篇文章Linux下C++的编程——开偏介绍中我们已经介绍了GUN、GCC、G++等一些重要的概念,现在应该开始动手实践了!开发工具的安装环境 Distributions版本:CentOS 6.7...
  • luoweifu
  • luoweifu
  • 2015年12月06日 20:40
  • 25427

[2016/7/23][0/1背包] 0/1背包问题题目总结

昨天把oj上的0/1背包问题的题目刷完了。终于大概理解了。做完只有一个感觉,都是套路。但是也不要死记硬背递推式。只需要想想,对于当前的状态,我该怎么做才能让它达到下一个状态?牵涉到比大小,谁和谁比?有...
  • ZZU_Ringo
  • ZZU_Ringo
  • 2016年07月23日 08:08
  • 549

读《Linux C编程一站式学习》II

读《LC编程一站式编程》II。此Note补《LC编程一站式学习》的“文件系统”、“信号”、“TCP/IP”及“Socket编程”章节。不含进程章节的“实现简单的Shell”及线程章节的”哲学家问题“题...
  • misskissC
  • misskissC
  • 2014年09月20日 17:30
  • 1743

《Linux程序设计》——Linux环境

一、程序参数  1、
  • Explorer_day
  • Explorer_day
  • 2014年09月21日 20:40
  • 684
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux环境有关编程(1)
举报原因:
原因补充:

(最多只允许输入30个字)