怎样把两个整数写入一个文件再读出来?
# include <stdio.h>
# include <sys/stat.h>
# include <sys/types.h>
# include <fcntl.h>
# include <unistd.h>
# include <sys/types.h>
# include <sys/ipc.h>
# include <sys/sem.h>
# include <signal.h>
# include <stdlib.h>
# include "ourhdr.h"
# include <time.h>
char *filepath="./fortest";
int fd;
int buff[2];
void
showerr(char *errinfo)
{
printf("%s",errinfo);
exit(0);
}
int
main(void)
{
srandom(time(NULL)); //设置随机种子
buff[0]=random()%100; //产生随机数
buff[1]=getpid(); //获取进程id
if((fd=open(filepath,O_RDWR|O_TRUNC|O_CREAT,S_IRWXU|S_IRWXG|S_IRWXO))<0) //打开文件,如果文件不存在就创建
showerr("File open ERROR!!");
if(write(fd,buff,4)<0); //写入文件
showerr("File write ERROR!!");
close(fd); //关闭文件
}
上面这个目的是想把一个1-100的随机数和他的进程id写进文件...
但他总是 File write Error...
读取的内容时又应该怎么办?
谢谢了...
问题点数:100、回复次数:4Top
1 楼dchg2000(偏爱小龙女(http://www.go2linux.cn/))回复于 2003-12-03 19:49:13 得分 30
老兄,把错误信息打印出来呀,
Top
2 楼woodzong(宗)回复于 2003-12-03 19:54:24 得分 0
我知道那里错了...原来我这里
if(write(fd,buff,4)<0); //写入文件
showerr("File write ERROR!!");
if语句多了一个;
所以老showerr()...想撞墙...以前也试过这样的...wuwuwuwuwu
不过写进文件后应该怎么读取那两个整数呢??
Top
3 楼dchg2000(偏爱小龙女(http://www.go2linux.cn/))回复于 2003-12-03 22:47:52 得分 40
read(fd, buff, sizeof(int), 2)
就可以了Top
4 楼linaxing(三月三)回复于 2003-12-04 08:37:47 得分 30
楼上的read()的参数错了吧,应该是这样:read(fd, buff, sizeof(int)*2)
Top




