Linux shell不执行我的c程序

use*_*670 3 c linux bash shell ubuntu

在一些服务器更新之后,我无法执行C程序(它昨天正在工作,并且我的服务器中的某些内容已更改导致此问题).

我在这个名为aesdecript的文件夹/ home/int/exe/ac程序中获得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"'
Run Code Online (Sandbox Code Playgroud)

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;
}    
Run Code Online (Sandbox Code Playgroud)

此致,蒂亚戈

小智 6

您描述的症状与尝试在64位系统上执行32位二进制文​​件时出现的症状非常相似,并且32位"仿真"不可用.在这种情况下,即使二进制文件是可执行的并且一切正常,系统错误代码也是"没有这样的文件或目录".要解决此问题,请使用以下命令安装对32位可执行文件的支持:

sudo apt-get install ia32-libs
Run Code Online (Sandbox Code Playgroud)

这可能是升级后遗漏的内容.有关较长的故事,请参阅此文章.