[英]Syntax error reported in basic C code - what is wrong?
代码如下。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main ( int argc, char *argv[] )
{
//FILE *fps;
char secret[512] =" ";
FILE *fps = fopen("/etc/comp2700/share/secret", "r");
if(fps == NULL)
{
printf("Secret file not found\n");
return 1;
}
fgets(secret, 512, fps);
printf("Secret: %s\n", secret);
fclose(fps);
return 0;
}
当我尝试运行此程序时,它会反复抛出以下错误:
./attack1.c: line 4: syntax error near unexpected token `('
./attack1.c: line 4: `int main ( int argc, char *argv[] )'
您无法从命令行以./attack1.c
运行C程序。 通常shell会拒绝执行C源文件,因为它不应该具有执行权限,但由于某种原因,在您的系统上,它必须具有x
位并且由默认shell作为脚本读取。
当然这会失败,因为attack1.c
包含C代码,而不是命令文件。 请注意, #include
行被shell解释为注释,错误仅发生在第4行。
要运行C程序,必须先编译它以生成可执行文件:
gcc -Wall -o attack1 attack1.c
如果没有编译错误,则运行可执行文件:
./attack1
您可以将这些命令组合为
gcc -Wall -o attack1 attack1.c && ./attack1
首先,您需要使用以下命令编译attack.c
代码:
gcc attack.c
这将创建一个可执行文件a.out
,您可以使用以下命令运行该文件:
./a.out
希望这对你有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.