• 创建文件与删除文件的小例子


    在单目录下创建和删除大量1字节的文件所需的时间进行度量,文件名以xNNNNNN的格式来创建。数量在1000-20000之间。创建时随机,删除时按照文件名升序。

    暂时还没有想出来该如何保存随机数组中的内容,执行两次函数后,随机数组的内容就变了。只能简单的用difftime()来简略的度量时间.

      1 #include "head.h"
      2 void create (int a[],int num);
      3 void delete(int a[],int num);
      4 void Bubble_sort(int a[],int num);
      5 int k[20000]={0};
      6 int main(int argc,char *argv[])
      7 
      8 {
      9     if(argc!=3)
     10     {
     11 
     12         printf("usage %s  flag numer 
    ",argv[0]);
     13         exit(1);
     14     }
     15     int flag=atoi(argv[1]);
     16     int num=atoi(argv[2]);
     17     if(num>19000)
     18     num=num-1000;
     19     int *a=calloc(num,sizeof(int));
     20     //int *k=calloc(num,sizeof(int));
     21     int i=0;
     22     srand((unsigned int)time (NULL));
     23     time_t start ,end;
     24     double diff;
     25 /*    if(flag==1)    
     26     {
     27     for(i=0;i<num;i++)
     28     {
     29         a[i]=rand()%num+1000;
     30         printf("%d
    ",a[i]);
     31     }    
     32         //time(&start);
     33         create(a,num);
     34         //time(&end);
     35     }
     36     int m=0;
     37     for(i=0;i<num;i++)
     38     {
     39         k[m++]=a[i++];
     40     }
     41      if(flag==0)
     42     {
     43         Bubble_sort(k,num);
     44          for(i=0;i<num;i++)      
     45                 printf("%d
    ",a[i]);
     46         delete(k,num);    
     47 
     48     }
     49     free(a);*/
     50     for(i=0;i<num;i++)
     51     {
     52         a[i]=rand()%num+1000;
     53         printf("%d
    ",a[i]);
     54     }    
     55         time(&start);
     56         create(a,num);
     57         time(&end);
     58         
     59         diff=difftime(end,start);
     60         printf("创建%d个文件,耗时:%.2f秒
    ",num,diff);
     61         Bubble_sort(a,num);
     62         time(&start);
     63         delete(a,num);
     64         time(&end);
     65         diff=difftime(end,start);
     66         printf("删除%d个文件,耗时:%.2f秒
    ",num,diff);
     67     
     68     return 0;
     69 }
     70 
     71 void create (int a[],int num)
     72 {
     73     int i=0;
     74     char str[50]="0";
     75     for(i=0;i<num;i++)
     76     {        
     77 
     78         snprintf(str,50,"dd if=/dev/zero of=x%06d bs=1 count=1
    ",a[i]);
     79         system(str);
     80         /*char s[20]="x";
     81         char command[100]="dd if=/dev/zero of=";    
     82         char command1[20]=" bs=1k count=1";
     83         snprintf(str,10,"%06d
    ",i);
     84         strcat(s,str);
     85         strcat(command,s);
     86         strcat(command,command1);
     87         system(command);*/
     88             
     89     }        
     90 }
     91 void delete(int a[],int num)
     92 {
     93     int i=0;
     94     char str[50]="0";
     95     for (i=0;i<num;i++)
     96     {
     97         snprintf(str,20 ,"rm -f x%06d ",a[i]);
     98         system(str);
     99     }
    100 }
    101 void Bubble_sort(int a[],int num)
    102 {
    103     int i=0,j=0,temp=0;
    104     for (i=0;i<num-1;i++)//比较的趟数
    105     {
    106     for(j=0;j<num-i-1;j++)//一趟内比较的次数
    107     {
    108         if(a[j]>a[j+1])
    109         {
    110             temp=a[j];
    111             a[j]=a[j+1];
    112             a[j+1]=temp;
    113         }
    114     }
    115     }
    116 }

    head.h

     1 #include <sys/uio.h>
     2 #include <sys/types.h>
     3 #include <sys/stat.h>
     4 #include <unistd.h>
     5 #include <stdlib.h>
     6 #include <stdio.h>
     7 #include <string.h>
     8 #include <fcntl.h>
     9 #include <errno.h>
    10 #include <setjmp.h>
    11 #include <pwd.h>
    12 #include <grp.h>
    13 #include <limits.h>
    14 #include <shadow.h>
    15 #include <sys/fsuid.h>
    16 #include<signal.h>
    17 #include <sys/wait.h>
    18 #include<sys/time.h>
    19 #include <time.h>
    20 #include <sys/ipc.h>
    21 #include <sys/msg.h>
    22 #include <sys/shm.h>
    23 #include <pthread.h>
    24 #include <stddef.h>
    25 #include <netinet/in.h>
    26 #include <netdb.h>
    27 #include <sys/socket.h>
    28 #include <strings.h>
    29 #include <arpa/inet.h>
    30 void strerr(const char *msg)
    31 {
    32     fprintf(stdout,"%s is :%s",msg,strerror(errno));
    33     exit(1);
    34 }
    35 void err(const char *msg)
    36 {
    37     perror("msg ");
    38     exit(1);
    39 }
  • 相关阅读:
    linux自动清理30天之前的文件
    Oracle树查询及相关函数
    jackson循环引用导致序列化stackOverFlow的解决
    java核心技术36讲笔记
    Quartz学习
    Quartz学习
    java核心技术36讲
    git常用命令
    CTCall简介(后续会继续补充)
    自定义导航栏,隐藏导航栏底部的灰色线条
  • 原文地址:https://www.cnblogs.com/zydark/p/7898673.html
Copyright © 2020-2023  润新知