Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 非法指令:4_C++_C_Macos_Terminal - Fatal编程技术网

C++ 非法指令:4

C++ 非法指令:4,c++,c,macos,terminal,C++,C,Macos,Terminal,我正在写一个c代码来执行终端的“history 10”命令,我在我的mac终端上使用clang编译器运行程序,它显示错误“非法指令:4” 我的代码是- #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include<errno.h> #include<sys/wait.h> #include <unistd.h> #include<str

我正在写一个c代码来执行终端的“history 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;
} 
#包括
#包括
#包括
#包括
#包括
#包括
#包括
int main()
{char cmd[10];
strcpy(cmd,“历史记录10”);
系统(cmd);
返回0;
} 

您的缓冲区溢出:
cmd
数组只有10个字符,而您
strcpy
数组中有一个11个字符的字符串(该字符串末尾有一个隐式的第11个零字节,它是字符串的终止符)

去掉缓冲区,然后就这样做

 system("history 10"); 
或者声明缓冲区的长度足以容纳当前命令,也可能是将来的命令。大概是这样的:

char cmd[500];

您需要
charcmd[11]否则,不会存储NUL字符(
'\0'
)。逐个错误。(不要忽略缓冲区大小…)让编译器来完成工作:
charcmd[]=“history 10”请不要同时使用标记和。这些是不同的语言,您的代码仅为C语言,您确定需要包含所有这些
*.h
文件吗?