简单:从终端(Mac)将数据传递到c程序

cdb*_*dba 3 c parameters macos terminal

所以,这是一个非常基本的问题.对于作业,我们必须编写ac程序来计算虚拟地址的页面和偏移号.当我创建一个我们应该进行计算的虚拟地址的声音变量时,我的程序似乎工作正常,但我无法弄清楚如何传递它.

作业说我们应该像这样运行我们的程序

./program_name 19982
Run Code Online (Sandbox Code Playgroud)

我只是无法弄清楚如何在我的mac终端上传递19982.任何帮助表示赞赏.(并且在某人开玩笑之前.)

Joh*_*web 6

听起来你正在寻找argv,如果你不知道它叫什么,我想这很难找到!这不是特定于Mac OS X的终端.

函数的argv参数main()是一个字符串数组; 它的元素是各个命令行参数字符串.

该程序正在运行的路径是第一元素argv,即argv[0].

元素的数量argv存储在argc:

#include <stdio.h>

int main(int argc, char* argv[])
{
    int arg;
    for (arg = 0; arg < argc; ++arg)
    {
        printf("Arg %d is %s\n", arg, argv[arg]);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译:

% gcc program_name.c -o program_name
Run Code Online (Sandbox Code Playgroud)

运行:

% ./program_name 19982
Arg 0 is ./program_name
Arg 1 is 19982
Run Code Online (Sandbox Code Playgroud)

转换argv[1]int被留作练习.