標籤:rgs 輸入參數 pass 使用 tps ocs 命令列參數 bsp 資料
C語言
在 C 語言中, 使用 main 函數的輸入參數 argc 和 argv 傳入命令列參數.
- argc 為 int 類型, 表示傳入命令列參數的個數 (argument count);
- argv 為 char** 類型, 表示命令列參數向量 (argument vector), 每個命令列參數為字串類型, 因此 參數 argv 也可以看做是字串數組.
範例程式碼如下:
/** filename: pass_args.c* This code is modified a little according to the Arun‘s answer in https://stackoverflow.com/questions/3898021/regarding-mainint-argc-char-argv*/#include <stdio.h>int main(int argc, char *argv[]){ int i = 0; printf(" argc = %d\n", argc); for (; i < argc; ++i) { printf(" argv[ %d ] = %s\n", i, argv[i]); } return 0;}
編譯命令為
$ gcc pass_args.c -o pass_args
運行命令及結果如下:
$ ./pass_args arg1 arg2 3argc = 4argv[ 0 ] = ./pass_argsargv[ 1 ] = arg1argv[ 2 ] = arg2argv[ 3 ] = 3
Python 語言
Python 語言可以使用 sys 模組中的 argv 變數, 實現相似的功能. 如果需要更進階的命令列參數傳遞方式, 可以使用 argparse 模組. 使用 sys.argv 的範例程式碼如下:
#!/usr/bin/env python# -*- coding: utf8 -*-from __future__ import print_functionimport sysif __name__ == ‘__main__‘: print (‘The argument count is %d.‘ % len(sys.argv)) print (‘The argument vectors: ‘) for i, arg in enumerate(sys.argv): print (‘ argv[ %d ] = %s‘ % (i, arg))
運行命令及結果如下:
$ python pass_args.py arg1 arg2 3The argument count is 4.The argument vectors: argv[ 0 ] = pass_args.py argv[ 1 ] = arg1 argv[ 2 ] = arg2 argv[ 3 ] = 3
參考資料
1. Regarding ‘main(int argc, char *argv[])‘ [duplicate]. https://stackoverflow.com/questions/3898021/regarding-mainint-argc-char-argv
2. Entry point - Wikipedia. https://en.wikipedia.org/wiki/Entry_point
3. Python - Command Line Arguments. https://www.tutorialspoint.com/python/python_command_line_arguments.htm
傳遞命令列參數範例程式碼 (C 和 Python)