我試着在ç程序使用md5sum
命令,現在即時通訊使用dirent.h
得到一個文件夾中的所有文件,現在,我想所有這些文件的全部MD5 ,我這樣做:在C上創建的md5sum
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <syslog.h>
#include <string.h>
#include <dirent.h>
int main(void){
char *word = ".gz";
int i=0;
char *word2 = ".";
char *word3 = "..";
unsigned int md5;
DIR *d;
struct dirent *dir;
d = opendir(".");
if (d) {
while ((dir = readdir(d)) != NULL)
{
if((strstr(dir->d_name, word) == NULL) && (strcmp(dir->d_name, word2) != 0) && (strcmp(dir->d_name, word3)!= 0)) {
md5 = system("md5sum dir->d_name");
printf("The md5 of %s is %d\n", dir->d_name, md5);
}
}
}
return(0);
}
但是當我運行它,它說,例如:
md5sum: dir-: No such file or directory
The md5 of ej1_signal.c is 256
md5sum: dir-: No such file or directory
The md5 of pipeL.c is 256
能否請你解釋一下我爲什麼會這樣呢?謝謝 !
我強烈建議閱讀的['system']文檔(http://pubs.opengroup.org/onlinepubs/9699919799/functions全部解釋/system.html)函數。 – 2014-12-27 16:10:31
你是否意識到系統不會返回'md5'的值,而是命令的退出碼? – 2014-12-27 16:10:53
我是唯一一個在''md5sum dir-> d_name「''上說'wat'的人嗎? – 2014-12-27 16:19:20