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 是非常有感情的,毕竟使用它有十多年了.早就想写 ...
随机推荐
- jquery过滤器
<html> <head> <meta charset="UTF-8"> <title>Document</title> ...
- Cookie工具类
import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet ...
- javascript模拟jQuery封装委托事件,兼容IE
var $ = function(id){ var dom = document.getElementById(id); return { on:function(eventType,element, ...
- js 字符串拼接
正常来说已经使用es6 的 模板了如`` //页面层 layer.open({ type: 1, content:`<div class="child_card"> & ...
- javascript 原型链
浅谈JS原型链 原型链 ECMAScript中描述了原型链的概念.我们知道ECMAScript并不像C++,Java那样使用类,但是对象仍然可以通过多种方式创建,其中就有构造函数方式.每个构造函数都有 ...
- [转]RamDisk导致远程桌面客户端无法启动问题
在一次重启系统后发现无法运行远程桌面客户端,运行后进行连接即报错. 查看日志有AppCrash错误: 错误应用程序名称: mstsc.exe,版本: 6.1.7600.16385,时间戳: 0x4a5 ...
- windows bat 批处理 !vm 合并快播文件
今天简单的写了一个bat批处理文件 用来处理快播的p2p的文件,一般回事这样的目录 你可以下载如下代码 @echo off for /r %%a in (.) do ( echo %%a cd %%a ...
- rsync组合inotify-tools完成实时同步[转]
一. 什么是inotify inotify是一种强大的.细粒度的.异步的文件系统事件监控机制,Linux内核从2.6.13开始引入,允许监控程序打开一个独立文件描述符,并针对事件集监控一个或者多个文件 ...
- 一些IT中的工具介绍【转】
1. 史上最全github使用方法:github入门到精通 2. Git教程 3. GIT与GitHub使用简介 简单来说,git是一种版本控制系统.跟svn.cvs是同级的概念.github是一 ...
- 生成器(generator)内部解析
#http://kb.cnblogs.com/page/87128/(未看完)