2012-06-22 3 views
1

암호화 된 문자열의 암호를 해독하기 위해 아래와 같이 C 코드를 작성했습니다.이 코드는 popen을 사용합니다.popen 사용 중 예기치 않은 sh 구문 오류가 발생했습니다.

snprintf(cmdcheck,1000,"echo %s %c openssl aes-256-cbc -d -a -salt -pass pass:excel2012", idcheck,'|'); 
FILE *cmdid = popen(cmdcheck,"r"); 

이 코드는 잘 준수하지만, 실행에 다음과 같은 오류를 제공합니다 :

sh: Syntax error: "|" unexpected 
문제를 해결하기 위해 무엇을 할 수 있는지

? 미리 감사드립니다. 저의 운영 플랫폼은 Linux입니다.

+1

'idcheck'의 값은 무엇입니까? –

+3

문자열에서'\ "% s \"를 시도하십시오. – cdarke

+0

'cmdid '를 출력하여'sh'가보고있는 것을 보면서 이것을 디버깅 할 수 있다고 덧붙이고 싶습니다. –

답변

0

단서는 오류가 sh에서 나오고 있다는 것입니다 - "|" sh에있는 예약 된 문자이므로 이스케이프해야합니다 : '\ |' 그것을해야합니다.

관련 문제