免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1706 | 回复: 0
打印 上一主题 下一主题

文件操作与程序运行时间的获取 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-22 17:41 |只看该作者 |倒序浏览
文件操作与时间函数
系统调用主要有以下几个:
1.打开文件或设备
#include
#include
#include
int open(const char *path, int oflags);
int open(const char *path, int oflags, mode_t mode);
//open建立了一条到文件或设备的访问路径,oflags用来定义打开文件所采取的动作
#include         //必须最早出现
2.从打开的文件或设备里读数据
size_t read(int fildes, void *buf, size_t nbytes);
//返回读到的字节数
3.向文件或设备写数据
size_t write(fildes, const void *buf, size_t nbytes);
//把缓冲区buf的前nbytes个字节写入与文件描述符fildes关联的文件中。返回实际写入的字节数。
4.关闭文件或设备
int close(int fildes);
5.把控制信息传递给设备驱动程序
int ioctl(int fildes, int cmd, ...);
#include
6.用它来设置文件的下一个读写位置。
off_t lseek(int fildes, off_t offset, int whence);
//返回从文件头到文件指针被设置处的字节偏移植
7.fstat,stat,lstat//返回与打开的文件描述符相关的文件的状态信息
8.dup,dup2//复制文件描述符
系统调用的缺点:1.系统调用会影响系统性能
2.硬件会对底层系统调用一次所能读写的数据块做出一定的限制
所以,我们一般用标准I/O
#include
FILE *fopen(const char *filename, const char *mode);
size_t fread(void *ptr, size_t size, size_t nitems, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nitems, FILE *stream);
int fclose(FILE *stream);
int fflush(FILE *stream);//把文件流里的所有未写出的数据立刻写出
int fseek(FILE *stream, long int offset, int whence);
测试程序的运行时间,微秒级
#include
int gettimeofday(struct timeval *tv, struct timezone *tz);//获取程序当前时间
struct timeval
{
    time_t      tv_sec;     /* seconds */
    suseconds_t tv_usec;    /* microseconds */
};
struct timezone
{
    int tz_minuteswest;     /* minutes west of Greenwich */
    int tz_dsttime;         /* type of DST correction */
};
以下用random()函数来产生5000个随机数,存进randnum.txt文本中
#include
#include
int main()
{
    int i=0,num[5000],x[5000];
   
    FILE *random_num;
   
    for(i=0;i<5000;i++)
    {
        num=random()%1000;
    }
   
    random_num=fopen("/root/program/random/randnum.txt","r");   
   
    printf("产生随机数\n");
   
    fwrite(num,4,5000,random_num);
    fclose(random_num);
    return 0;
}


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/104319/showart_2157967.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP