Linux终端,如何将参数传递给另一个参数C可执行文件

时间:2016-01-18 20:57:40

标签: c bash terminal arguments

我在C中写了两个小程序,cryptdecrypt。 我可以从终端打电话:

./crypt some_argument                         it works.

但我希望传递解密crypt的输出。 我已经尝试过了:

./decrypt $(./crypt hello)                    does not work
./crypt hello | ./decrypt                     does not work

源代码: 隐窝:

#include <stdio.h>
#include <stdlib.h>

#define CRYPT_KEY 5

char *crypto(char *str) {
    char *tmp_adr = str;

    while (*str != 0) {
        *str += CRYPT_KEY;
        str++;
    }
    return tmp_adr;
}

int main(int argc, char *argv[]) {
    printf("Crypted message: %s\n", crypto(argv[1]));
}

Decypt是相同的,但在这里有一个减号:

*str -= CRYPT_KEY;

有人知道怎么做吗?

1 个答案:

答案 0 :(得分:2)

输出包含空格。如果您想要argv[1]中的所有内容,则需要引用它。

即。 ./decrypt "$(./crypt some_argument)"