내 C 프로그램에서 파이프 기호를 문자열로 복사하고 있습니다. 잘 작동하지만 실행하는 동안 다음 오류가 발생합니다.
sh: Syntax error: "|" unexpected
다음은 코드입니다.
puts("Enter the password");
fgets(buffer, 50, stdin);
strcpy(command, "echo -n ");
strcat(command, buffer);
puts(command);
strcat (command, "| md5sum");
puts(command);
system(command);
기본적으로 사용자 입력에 대해 md5sum을 계산하려고합니다.
fgets는 '버퍼'에 \ n (사용자 입력 끝에)을 포함하여 쉘에 전달하는 명령 줄을 분리합니다. 명령 줄을 작성하기 전에 \ n을 제거해야합니다.
(진지한 작업의 경우 md5sum (1)으로 보내는 것보다 라이브러리 호출을 사용하는 것이 좋습니다 . 예 : https://www.openssl.org/docs/crypto/md5.html .)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다