Команда echo
имеет проблему, заключающуюся в том, что ее поведение не переносимо между различными оболочками или средами.Вместо этого лучше использовать printf
, который является переносимым.В вашем случае замените оператор echo -n
на printf
, что приведет к следующему коду:
#include <stdlib.h>
int main() {
system("printf this | openssl enc -aes-128-cbc -K 0 -iv 0 -base64");
}
Сборка и запуск:
$ gcc test.c -o test
$ ./test
gc8X3os/mFxDE73AebmweQ==
по желанию.