| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 542 人关注过本帖
标题:请高手帮忙,关于unix下文件操作
只看楼主 加入收藏
刮目相看
Rank: 2
等 级:论坛游民
帖 子:25
专家分:30
注 册:2009-11-23
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:3 
请高手帮忙,关于unix下文件操作
麻烦大家给看一下。

上机有一道题目是这样的:

要求用户输入人员信息,存到文件中。
人员信息的结构体定义如下:
typedef struct{
char nom[20];
int age;
int nb_kids;
}

1.创建文件函数。
给出的原型:int creat(char nom_file[])

形参为创建的文件的名字。

我写了个,但是似乎有问题,请大家帮忙看看:

#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<malloc.h>
#include<string.h>
#include <unistd.h>

#define MAX 100
#define OPEN_ERR 1
#define TOUT_VA 0
#define WRITE_ERR 2


/*定义结构体*/
typedef struct
{
char Nom[MAX];
int age;
int nbenfants;
}infos;


int Creation(char* nom_fichier)
{

int size;
int handle;
char temp[MAX];

infos * tmp=(infos *)malloc(sizeof(infos));

/*memset(tmp,0,sizeof(infos));*/


handle=open(nom_fichier,O_CREAT|O_WRONLY|O_TRUNC,S_IRUSR|S_IWUSR);
if(handle==-1)return(OPEN_ERR);

do
{

/*相关信息存入结构体*/
printf("Nom ?age?nb d'enfant?\n");
scanf("%s",tmp->Nom);
scanf("%d",&(tmp->age));
scanf("%d",&(tmp->nbenfants));

/*写入文件*/
size=write(handle,tmp,sizeof(tmp));
if(size!=sizeof(tmp)){close(handle);return WRITE_ERR;}

}while(tmp->age!=-1);

close(handle);
return TOUT_VA;
}
      


int main()
{

  char nom_fichier[]="test";
  Creation(nom_fichier);
  return 0;
}

为什么我运行完程序,用cat查看新建文件内容,不是我输入的呢?是因为是以2进制写入?
这个地方不懂。
谢谢大家。


搜索更多相关主题的帖子: unix 文件 
2010-03-06 23:55
hanzhenddd
Rank: 5Rank: 5
等 级:职业侠客
帖 子:90
专家分:361
注 册:2010-3-4
收藏
得分:0 
Creation(nom_fichier);

open(nom_fichier,O_CREAT|O_WRONLY|O_TRUNC,S_IRUSR|S_IWUSR);?

int open(const char *pathname, int oflag, ... /* mode_t mode */);

2010-03-07 03:43
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:10 
即使是以纯文本方式写入文件,因为结构体中不都是字符型数据,所以写入的内容不可能与你想像的相同.

★★★★★为人民服务★★★★★
2010-03-07 07:57
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
这种有结构的文件打开时当然要自己解释了,cat 只能读纯文本的东西。你自己不是悟出来了吗~~
2010-03-07 09:47
快速回复:请高手帮忙,关于unix下文件操作
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020239 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved