【发布时间】:2012-12-25 09:26:22
【问题描述】:
在一些服务器更新后,我无法执行 C 程序(它昨天还在工作,但我的服务器发生了一些变化,导致了这个问题)。
我在这个文件夹 /home/int/exe/ 有一个名为 aesdecript 的 c 程序,拥有 777 权限。因此,如果以 root 身份输入以下命令:
$ cd /home/int/exe/
$ ./aesdecrypt
-bash: /home/int/exe/aesdecrypt: No such file or directory
$ sh aesdecrypt
aesdecrypt: 1: Syntax error: "(" unexpected
$ ldconfig aesdecrypt
ldconfig: relative path `aesdecrypt' used to build cache
$ system("/home/int/exe/aesdecrypt")
-bash: syntax error near unexpected token `"/home/int/exe/aesdecrypt"'
aesdecrypt 是一个 C 程序。
有人知道吗?该程序几天前开始运行。
aesdecrypt源码如下:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
#include "aes.h"
int aes_crypt_decrypt(int encrypt, char *finput, char *foutput);
#define TRUE 1
#define FALSE 0
int main(int argc, char **argv) {
puts("Oi mundo!"); /* prints Magick Teste! */
/*if( argc < 3 )
return (1);
aes_crypt_decrypt( TRUE, argv[1], argv[2] );*/
return EXIT_SUCCESS;
}
问候,蒂亚戈
【问题讨论】:
-
文件是否可执行?试试 chmod a+x aesdecrypt。另外,显示文件 aesdecrypt 的输出
-
看到
ls -l aesdescript也会很有趣。 -
您输入
aesdecript,但shell 打印出aesdecrypt。这里有些不合时宜。 -
附带说明,将二进制文件放在名为“src”的目录中是一种不好的做法
-
它是可执行的(777),问题不在于程序,我已将代码更改为#include
#include #include #include #include #include #include "aes.h" int aes_crypt_decrypt(int encrypt, char finput, char *foutput); #define TRUE 1 #define FALSE 0 int main(int argc, char **argv) { puts("Oi mundo!"); / 打印 Magick Teste! */ /*if( argc