[英]Illegal Instruction :4
我正在編寫一個 c 代碼來執行終端的“歷史 10”命令,我在我的 mac 終端上使用 clang 編譯器運行程序,它顯示錯誤“非法指令:4”我的代碼是 -
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include<errno.h>
#include<sys/wait.h>
#include <unistd.h>
#include<string.h>
int main()
{ char cmd[10];
strcpy(cmd,"history 10");
system(cmd);
return 0;
}
您超出了緩沖區: cmd
數組只有 10 個字符,並且您strcpy
一個 11 個字符的字符串放入其中(字符串末尾有一個隱含的第 11 個零字節,這是字符串的終止符)。
擺脫緩沖區,然后做
system("history 10");
或者聲明緩沖區足夠長以容納您當前的,可能還有一些未來的命令。 像這樣的東西:
char cmd[500];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.