#include <stdlib.h>
#define MD5_DEGIST_LENGTH 16
int ecds_trans_fmt_md5(char *md) {
int i;
char buf[80];
for(i=0;i<MD5_DEGIST_LENGTH;i++)
sprintf(&(buf[i*2]),"%02x",md[i]);
printf("%s\n",buf);
return 0;
}
int main( )
{
char *str1;
char str[16]="abcdefg";
str1=str;
ecds_trans_fmt_md5(str1);
}
编译的方法为:cc -c md5.c -o md51
执行时报错如下[root@qiujun ~]# ./md51
bash: ./md51: 权限不够
如是我添加执行权限:chmod a+x md51
继续执行:./md51报如下错误:[root@qiujun ~]# ./md51
bash: ./md51: cannot execute binary file
由此我断定可能是编译的时候出了问题,经查资料是编译的时候的格式指定错误导致,正确做法如下:
cc -o md51 md5.c
./md51发现成功执行并返回结果。