У меня маленькая проблема с этим.Что мне нужно сделать, это создать функцию, которая возвращает строку (получение другой строки в качестве параметра).Эта функция должна генерировать шифрование (sha256) из ввода.Это мой ужасный код, и я объясню (или постараюсь)
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
//not sure if this is the correct way to declare a string function
//with string input parameter, but works with a dummy return
const char* Encrypt (char* Arg1)
{
//varaible to generate command
char command[128];
//variable to store the result
char result[256];
//creating command with input parameter
snprintf(command, sizeof command, "echo -n %s | sha256sum | cut -c1-64",Arg1);
//popen varaible
FILE *fpipe;
//valdiating popen
if (0 == (fpipe = (FILE*)popen(command, "r")))
{
perror("popen() failed.");
exit(1);
}
//here is my problem
char c = 0;
while (fread(&c, sizeof c, 1, fpipe))
{
//when i print te "c", it shows correctly in a line
printf("%c", c);
//but I want to store in "result" variable for using as return
//this doesnt work
snprintf(result, sizeof result, "%s", c);
//this neither
char c2[4];
strcpy(c2, &c);
strcat(result,c2);
snprintf(result, sizeof result, "%s",c);
}
printf("%c", result);
pclose(fpipe);
//return result; not working
return "not woring";
}
Надеюсь, вы поможете мне