程序参数主要在c - ./dev --print中

时间:2016-11-29 11:47:41

标签: c parameters segmentation-fault

我正在尝试让程序检查用户在运行程序时是否正在传递程序参数。 FX:

Meteor.methods({
  foo: function() {
    const future = new Future();
    someAsyncCall(foo, function bar(error, result) {
      if (error) future.throw(error);
      future.return(result);
    });
    // Execution is paused until callback arrives
    const ret = future.wait(); // Wait on future not Future
    return ret;
  }
});

我想出了以下内容:

./dev --print

这是正确/最明智的方式吗?

目前,每次进入else语句时,我都会遇到seg-faults问题。不确定我在这里的实现与它有什么关系。

1 个答案:

答案 0 :(得分:1)

是的,这是一种方式,虽然我认为大多数C程序员都不会为单独的变量烦恼,只是这样做:

if(strcmp(argv[1], "--print") == 0)

当然,您应首先通过检查argv[1]验证 argc中的参数。否则,您将NULL传递给strcmp(),这是一个坏主意。

if(argc > 1 && strcmp(argv[1], "--print") == 0)
{
}