簡體   English   中英

非法指令:4

[英]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.

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