ですから、私はCプログラミングに本当に慣れておらず、文字列を読み取ったファイルの日付に置き換えてから、別のファイルに書き込もうとしています。しかし、問題は、ファイルに書き込んだときに文字列が同じままであるということです。
私が欲しいのは、これをファイルから読み取ることです。
<html>
<head>
<!--#include file=”date”-->
</head>
<body>
</body>
</html>
出力ファイル
<html>
<head>
Sat Nov 3 14:43:53 2012
</head>
<body>
</body>
</html>
エラーが発生します:互換性のないポインター型からdate_changeに引数1を渡します
コード
//システム日付置換機能
void *date_change(char** s, char* str, char* date){
static char buffer[4096];
char *p;
if(!(p = strstr(*s, str))) // <!--#echo var=\"date\"--> find this
return *s;
strncpy(buffer, *s, p-*s); //
buffer[p-*s] = '\0';
sprintf(buffer+(p-*s), "%s%s", date, p+strlen(str));
return buffer;
}
//主要
int main(int argc, char *argv[]){
int f;
f = open(argv[1], O_RDONLY);
if(errno != 0){
perror("Hiba");
exit(1);
}
//read from file
char c[1000];
while(read(f,&c, 1000)){
}
// -------------------------------- //システム日付を取得し、date_change関数に置き換えようとしています
time_t mytime;
mytime = time(NULL);
struct tm *time = localtime(&mytime);
char date[20];
strftime(date, sizeof(date), "%c", time); //format time as string
char* date_str;
int g = open("data.txt", O_WRONLY | O_CREAT, 0600);
//should replace all <!--#echo var=\"date\" --> to the system date
while(date_str = strstr(c, "<!--#echo var=\"date\"-->")){
date_change(&c, date_str, date);
}
write(g, c, strlen(c));
close(g);
// -------------------------------- //
close(f);
return 0;
}