簡體   English   中英

使用管道符號時C程序中的錯誤

[英]Error in C Program while using pipe symbol

我在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(在用戶輸入的末尾)包括在'buffer'中,這將破壞傳遞給shell的命令行。 在編寫命令行之前,您需要刪除\\ n。

(對於任何嚴肅的工作,最好使用庫調用而不是炮轟md5sum(1);例如https://www.openssl.org/docs/crypto/md5.html 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM