下面给出了代码。
#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[] )'
答案 0 :(得分:2)
答案 1 :(得分:2)
您不能以./attack1.c
的形式从命令行运行C程序。通常,shell会拒绝执行C源文件,因为它不应该具有执行许可权,但是由于某种原因,在您的系统上,它必须具有x
位,并由默认Shell读取为脚本。 / p>
这当然会失败,因为attack1.c
包含C代码,而不是命令文件。请注意,#include
行被shell解释为注释,并且错误仅发生在第4行。
要运行C程序,必须首先对其进行编译以生成可执行文件:
gcc -Wall -o attack1 attack1.c
如果没有编译错误,然后运行可执行文件:
./attack1
您可以将这些命令组合为
gcc -Wall -o attack1 attack1.c && ./attack1
答案 2 :(得分:-1)
首先,您需要使用以下命令来编译attack.c
代码:
gcc attack.c
这将创建一个可执行文件a.out
,您可以使用以下命令运行该文件:
./a.out
希望这对您有所帮助。