[C] [生成文件]生成文件出问题
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <signal.h>
int main()
{
char name[80]; //文件名
FILE *fd; //文件指针
char ifconfig[100];
char host[100];
char resolv[100];
char buf[100]; //缓存区分配
FILE *fp;
char buffer[80];
//取出当前日期
fp=popen("date '+%Y%m%d'","r");
fgets(buffer,sizeof(buffer),fp);
sprintf(name,"%s_bd",buffer);
fp=popen("ifconfig -a'","r");
fgets(ifconfig,sizeof(ifconfig),fp);
pclose(fp);
printf("%s",ifconfig);
fd = fopen("/etc/hosts","r");
fgets(host,sizeof(host),fp);
fd = fopen("/etc/resolv.conf","r");
fgets(resolv,sizeof(resolv),fp);
sprintf(buf,"curnetTime:%s\r\nhosts:%sresolv:\r\n%s",buffer,host,resolv);
printf("%s",buf);
fd = fopen(name,"a+");
fputs(buf,fp);
pclose(fd);
return 0;
}
fp=popen("ifconfig -a'","r");
fgets(ifconfig,sizeof(ifconfig),fp);
pclose(fp);
出现乱码?还有
fp=popen("date '+%Y%m%d'","r");
fgets(buffer,sizeof(buffer),fp);
sprintf(name,"%s_bd",buffer);
最后生成文件名是这样如:“20080321\n_bd”多一个"\n"出来?
最后执行结果这样:
Syntax error: Unterminated quoted string
??
curnetTime:20080323
hosts:::1 localhost.test.com.cn localhost
resolv:
127.0.0.1 localhost.test.com.cn localhost
以上只是打印出来,生成文件内容为空?
在些也请问一下,C 有没有像php 中的date函数?或者有定义过吗?或者如何把php中的函数修改为C可以用的?
注意是linux上C代码!