【413】C 语言 Command line

Command-Line Arguments

All the executable programs above have a main(void) program

  • more generally, executables take arguments on the command line
  • these enter the program via parameters

    切换行号显示

    1  int main(int argc, char *argv[])
    

For example:

prompt$ ./a.out -pre 3

means that:

  • argc refers to the number of arguments, including the program name

    • argc = 3
  • argv[] allows access to arguments represented as strings
    • argv[0] is a pointer to the string "./a.out"
    • argv[1] is a pointer to the string "-pre"
    • argv[2] is a pointer to the string "3"

Command-line argument processing example 1

Write a program that:

  • takes an optional numerical command-line argument 1, 2, 3 or 4
  • if the argument is not one of these characters (!), a usage message is printed

    切换行号显示

     // commarg.c
     #include <stdio.h>
     #include <stdlib.h>
     int main(int argc, char *argv[]) {
         if (argc == 1 ||
            (argc == 2 && atoi(argv[1]) >= 1 && atoi(argv[1]) <= 4)) {
             // we can do something here
         } else {
             printf("Usage: %s [1|2|3|4]\n", argv[0]);
         }
         return EXIT_SUCCESS;
     }
    
  • notice that atoi() had to be called to convert the character to a number
  • compiling and executing the program:
     prompt$ dcc commarg.c
     prompt$ ./a.out
     prompt$ ./a.out 1
     prompt$ ./a.out 2
     prompt$ ./a.out 3
     prompt$ ./a.out 4
     prompt$ ./a.out 5
     Usage: ./a.out [1|2|3|4]

Command-line argument processing example 2

Write a program that:

  • takes an optional command-line switch -reverse
  • if the switch is not correct, a usage message is printed

    切换行号显示

     // commargrev.c
     #include <stdio.h>
     #include <stdlib.h>
     #include <string.h>
     int main(int argc, char *argv[]) {
         if (argc == 1 ||
            (argc == 2 && !strcmp(argv[1], "-reverse"))) {
             // NOTE: strcmp returns 0 if matches.
             // we could do something here
         } else {
             printf("Usage: %s [-reverse]\n", argv[0]);
         }
         return EXIT_SUCCESS;
     }
    
     prompt$ ./a.out
     prompt$ ./a.out -reverse
     prompt$ ./a.out rubbish
     Usage: ./a.out [-reverse]

Makefile

原文地址:https://www.cnblogs.com/alex-bn-lee/p/11074529.html

时间: 2024-10-24 01:47:19

【413】C 语言 Command line的相关文章

在Linux下使用gcc编译mesa文件报undefined reference to symbol &#39;[email&#160;protected]@GLIBC_2.2.5和DSO missing from command line两个错误的解决方案

一.概述 在Linux系统下使用gcc编译用C语言写的mesa的示例程序. 环境:Ubuntu Server 18.04.1 二.问题的出现 在Ubuntu下安装好mesa所需的库文件,将目标文件从github上克隆下来之后编译. 以上截取的是用gcc编译目标文件和传参的介绍: gcc:源程序将用gcc编译器进行编译: osdemo,c:将要被编译的源程序: -lOSMesa:链接OSMesa库: -lGLU:链接GLU库: -lGL:链接GL库: -o:指定目标名称: osdemo:编译后生成

Can&#39;t use Subversion command line client: svn

使用Intellij IDEA的svn时提示出错:Can't use Subversion command line client: svn. 当我在使用svn,Checkout一个项目后,然后将其导入到Intellij idea中,出现这样的报错!经过google后,发现了问题,我的问题是:我安装的TortoiseSVN工具,本身是带有command-line功能的(我没有安装)如图: 所以报这个错误.如果安装的TortoiseSVN工具,本身是不带有command-line功能的,必须要安装

解决MySQL5.6 Warning: Using a password on the command line interface can be insecure

MySQL5.6在使用名文的密码登陆时,会出现:Warning: Using a password on the command line interface can be insecure 当然这样对于平常的登陆会无所谓,如果在脚本里使用使用的话,就会有问题: 解决这种问题的方法是需要在my.cnf中配置即可: 在my.cnf中加入如下配置 [mysqladump] user=my_name password=my_pass 重启MySQL 即可 以后再使用mysqldump命令就不需要加上任

How to build .apk file from command line(转)

How to build .apk file from command line Created on Wednesday, 29 June 2011 14:32 If you don’t want to install a number of programs for building your Android project, this article is for you. You will need only JDK, the Android SDK platform tools and

Command line option syntax error.type Command /? for help

电脑装思维导图的时候,报错显示"Command line option syntax error.Type Command /? for help."就查了一下,原来是系统没有C++2005,需要安装,就上网下载了一个vcredist_x86.exe,但是双击安装,仍然出现这个错误. 没办法,接着上网查吧,是什么原因呢?网上说是因为该文件安装不支持中文安装路径,然后我就把文件夹改成了英文名称的,但是双击还是出现这个错误.可能有的人用这种方法成功了吧~本着没有解决不了的问题的思想,接着奋

How To use RHEVM Command Line?

本文简单的描述下如何连接rhev shell以及简单的使用.关于更详细的用法请参考官方文档. 1.如何连接到rhevm? 要想连接到rhevm,必须拥有一个有效的证书.此证书一般安装完rhevm后会自动产生.下面是如何获取到证书. [[email protected] ~]# wget -O rhevm.cer http://rhevm.xzxj.edu.cn/ca.crt --2014-05-02 09:29:34-- http://rhevm.xzxj.edu.cn/ca.crt Resol

【转载】Data Science at the Command Line

Data Science at the Command Line Data Science at the Command Line is a new book written by Jeroen Janssens. This website contains information about the upcoming workshop in London, the webcast from August 20th, instructions on how to install the Data

Mac OS X Command Line

关于 man 命令 虽然有上千条命令,每条命令还有许多可选参数和具体的使用方式,但是你却不需要记住这些命令.你只需要记住一个:man 大多数命令都会包含一个使用指南,会告诉你任何你需要知道的关于这个命令的所有细节,在命令行中输入 man command-name 即可获取.例如,你想知道ls这个命令怎么使用,输入man ls即可进入使用指南页面. 使用指南往往很长,所以你可以使用▲(上箭头)或▼(下箭头)来上下移动,使用 来翻页,输入/和关键字来按照关键字搜索,按Q来退出使用指南页面. 那么——

MySQL5.6 Using a password on the command line interface can be insecure

最近把MySQL从5.5升到5.6以后,mysqldump居然不好用了,提示:  代码如下 复制代码 [[email protected] ~]# /usr/local/mysql/bin/mysqldump  -uroot -proot db > bak.sqlWarning: Using a password on the command line interface can be insecure. 翻译过来是:在命令行界面上使用密码可以是不安全的. 这让人有点郁闷,5.5用的一直都很爽,