Linux C Programing - Arguments(2)
#include <iostream>
#include <stdlib.h>
#include <stdio.h> //printf
#include <unistd.h> //extern char **environ
using namespace std; #include <vector>
#define _GNU_SOURCE #include <getopt.h> // THIS PROGRAM CAN ./program --env=HOME
// ./program -e HOME
// ./program --e HOME
// ./program -h
// ./program --h or ./program --help
extern char **environ;
int main(int argc,char *argv[])
{
/*
cout << "Hello, World!" << endl;
char *v_char = "houdini";
char *v_char_list[5]={"jack","luke"}; cout << v_char<<endl;
cout << v_char_list[0]<<endl;
return 0;
*/ /*
char *v_char_list[] = {"jack","luke"};
char **v_char_point = v_char_list; while(v_char_point!=NULL)
{
cout<<*v_char_point<<endl;
v_char_point++;
}
*/ if (argc<=)
{
printf("THIS IS A LINUX TOOLS BASED ON KATANA,PLEASE -h/--help SHOW TIPS\n");
} int opt;
struct option longopts[] = {
{"env",,NULL,'e'},
{"help",,NULL,'h'},
{"showenv",,NULL,'s'},
{,,,}
};
while ((opt=getopt_long(argc,argv,":e:h:s",longopts,NULL)) != - )
{
switch (opt) {
case 'e':
{
printf("get new option: %s \n", optarg);
char *env_name = getenv(optarg);
if (env_name)
{
printf("%s value is %s \n", optarg, env_name);
}
else
{
printf("The %s env do not exist\n", env_name);
}
break;
}
case 'h':
{
printf("\033[40;37m -h/--help : This Program helps\n \033[0m");
printf("\033[40;37m -e=value/--env=value : You want get the env value\n \033[0m");
printf("\033[40;37m -s/--showenv : show current environment \n \033[0m");
printf("\n");
break;
}
case 's':
{
char **env=environ;
while(*env)
{
printf("%s\n",*env);
env++;
}
break;
}
case '?':
printf("unkown option: %c \n",optopt);
break;
}
};
for(;optind<argc;optind++)
{
printf(" \"%s\" argument have no use...: \n",argv[optind]);
} exit();
}
Linux C Programing - Arguments(2)的更多相关文章
- First step to Signal —— in Linux C Programing
1. What's signal 信号是软件中断,提供了一种处理异步事件的方法.(见<Unix环境高级编程>)一般使用时需包含 signal.h 库. 每个信号命名由SIG开头,实际值为正 ...
- Linux C Programing - Terminal(1)
#include <stdio.h> //getchar() putchar() printf() gets() puts() sprintf() #include <stdlib. ...
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
- 0.大话Spring Cloud
天天说Spring cloud ,那到底它是什么? 定义 它不是云计算解决方案 它是一种微服务开发框架 它是(快速构建分布式系统的通用模式的)工具集 它基于Spring boot 构建开发 它是云原生 ...
- linux bash中too many arguments问题的解决方法
今天在编写shell脚本时,在if条件后跟的是[ $pid ],执行脚本的时候报 然后我输入改为[[$pid]]后,再执行脚本,就成功了,代码如下: #!/bin/bash pid=`ps -ef|g ...
- Linux - Python的虚拟环境配置的坑 virtualenv: error: unrecognized arguments: --no-site-packages
如果你在CentOS8下面配置虚拟环境时,遇到如下错误: [root@localhost ~]# mkvirtualenv my_django usage: virtualenv [--version ...
- 马哥Linux base学习笔记
介绍课程: 中级: 初级:系统基础 中级:系统管理.服务安全及服务管理.shell脚本 高级: MySQL数据库: Cache & storgae 集群: Cluster lb: 4la ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part2:clusterware安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part2:clusterware安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 3.安装Clus ...
- 深入理解 JavaScript,以及 Linux 下的开发调试工具
前言 JavaScript 是我接触到的第二门编程语言,第一门是 C 语言.然后才是 C++.Java 还有其它一些什么.所以我对 JavaScript 是非常有感情的,毕竟使用它有十多年了.早就想写 ...
随机推荐
- JS中的window.setTimeout()详解
相关用法: setTimeout (表达式,延时时间)setInterval (表达式,交互时间)其中延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTimeout 在执行时,是在载入 ...
- 读《深入php面向对象、模式与实践》有感(一)
什么样的代码需要改进?书中给出了四个标准(我个人比较认可这四个标准,实际开发中也的确时常遇到): 一.代码重复 用书中的原话讲:“如果你在写代码的时候,总是感觉似曾相识,很可能你的代码已经重复了”. ...
- js简单显示和隐藏div,触发超链接,动态更改button值,setInterval()简单使用,jquery easyui弹出框简单使用 .
js简单显示和隐藏div .<!DOCTYPE html> .<html> .<head> .<meta charset="UTF-8"& ...
- WxInput模块则比较彻底的解决了这个问题
基于wxpython的GUI输入对话框2 在程序输入中,有时会要求同时改变多个参数值,而且类型也不尽相同, 这时TextEntryDialog就显得不适用了.WxInput模块则比较彻底的解决了这个问 ...
- iPhone6手機產品提交了進網申請
近期,海外投資蘋果公司為iPhone6手機產品提交了進網申請,經電信設備進網檢測機構測試和我部審查,相關產品滿足進網管理要求.根據<電信條例>有關規定,我部依法定程式在法定時限內為蘋果公司 ...
- SHARE NOTHING SHARE EVERYTHING
http://mp.weixin.qq.com/s?__biz=MjM5ODYwMjI2MA==&mid=2649736156&idx=1&sn=23931f48282f6ef ...
- Git command line
# Pull the repo from master git pull # Create branch for myself in local git branch john/jenkins_cod ...
- Nginx配置(日志服务器中关于日志的产生)
一:概括 1.需要配置的概括 定义日志格式 日志的分割字段:^A 日志格式:IP地址^A服务器时间^A请求参数 配置location,记录请求日志到本地磁盘 将数据按照给定的日志格式存储到本地磁盘 二 ...
- 【Android测试】【第十七节】Instrumentation——App任你摆布(反射技术的引入)
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5569844.html 前言 学习了上节之后,大家是否已经 ...
- mysql重点--正确使用
1.一些错误情况 数据库表中添加索引后确实会让查询速度起飞,但前提必须是正确的使用索引来查询,如果以错误的方式使用,则即使建立索引也会不奏效.即使建立索引,索引也不会生效: - like '%xx' ...