嵌入式学习--IO进程线程

count size and line of a file

#include<stdio.h>
#include<string.h>
int size_file(FILE* fp);
int line_file(FILE* fp);
int main(int argc, const char *argv[])
{
    if(argc<2)
    {
        printf("请输入文件名\n");
        return -1;
    }
    FILE* fp_r=fopen(argv[1],"r");
        if(NULL==fp_r)
        {
            perror("fopen_r");
            return -1;
        }
    //打开另一个文件
    FILE* fp_w=fopen(argv[2],"w");
    if(NULL==fp_w)
    {
        perror("fopen_w");
        return -1;
    }
    char c=0;
    int i=0;
    while(1)
    {
        c=fgetc(fp_r);
        if(EOF==c)
        {
            break;
        }
        i++;
        fputc(c,fp_w);
    }
    int k;
    printf("%d\n",i);
    fclose(fp_r);
    FILE* fp_c=fopen(argv[1],"r");
    k=line_file(fp_c);
    printf("%d\n",k);

    fclose(fp_c);

    fclose(fp_w);
    return 0;
}
int size_file(FILE *fp)
{
    char a;
    int i=0;
    if(NULL==fp){printf("输入有误\n");}
    while(1)
    {
        a=fgetc(fp);
        if(a==EOF)
        {
            break;
        }
        i++;
    }
    return i;
}
int line_file(FILE* fp)
{
    char a;
    int i=0;
    if(NULL==fp){printf("输入有误\n");}
    while(1)
    {
        a=fgetc(fp);
        if(a==EOF)
        {
            break;
        }
        if(a=='\n')
        {
        i++;
        }
    }
    return i;                           

result

在这里插入图片描述

count size and line of file 2

#include <stdio.h>                                                        
#include <unistd.h>                                                       
#include <sys/stat.h>                                                     
#include <fcntl.h>                                                        
#include <string.h>                                                       
#define N 1                                                               
//stdIO test                                                              
int main(int argc, const char *argv[])                                    
{                                                                         
    //file open                                                           
    FILE* f1=fopen("./1_test.c","r");                                     
    FILE* f2=fopen("./2_test.c","w");                                     
//  //file read and write with fprintf and fscanf                        
//  char s1[5];                                                           
//  scanf("%s",s1);                                                       
//  printf("s1=%s\n",s1);                                                 
//  char t1[10];char a;char b;char t2[30];int cursor_ct;                  
//  for(int i=0;i<N;i++)                                                  
//  {                                                                     
//      // FILE READ                                                      
//      int r_count=fscanf(f1,"%s%c%s",t1,&a,t2);                         
//                                                                        
//      int cursor_ct = ftell(f1);                                        
//      printf("a=%d\n",a);                                               
//      printf("b=%d\n",b);                                               
//      printf("t1=%s\n",t1);                                             
//                                                                        
//      printf("c1=%s",t2);                                               
//      printf("NUM OF READ:%d\n",r_count);                               
//      printf("cursor_ct=%d",cursor_ct);                                 
//      //FILE WRITE                                                      
//      int w1_count=fprintf(f2,"%s",t1);                                 
//      int w2_count=fprintf(f2,"%s",t2);                                 
//      fprintf(stdout,"NUM OF WRITE:w1=%d\t w2=%d\n",w1_count,w2_count); 
//  }                                                                     
//  /                                             
//  //fputc fgetc                                                         
//  char c1;int w1;                                                       
//  for(int i=0;c1!=EOF;i++)                                              
//  {                                                                     
//      //int c1=fgetc(f1);                                               
//      c1=fgetc(f1);                                                     
//      //printf("%c\n",c1);                                              
//      w1=fputc(c1,f2);                                                  
//  }                                                                     
//  int cursor_ct=ftell(f1);                                              
//  printf("cursor_ct=%d\n",cursor_ct);                                   
//  printf("w1=%d",w1);                                                   
//  printf("c1=%d\n",c1);                                                 
//  //                        
//  //    fputs fgets                                                 
    char *r1;char s1[10];bzero(s1,sizeof(s1));int j=0;int k=0;int sum=0;  
    for(j=0;j<1000;j++)                                                   
    {                                                                     
        r1=fgets(s1,sizeof(s1),f1);                                       
        if(r1==NULL){break;}                                              
        printf("r1=%p\n",r1);                                             
        printf("s1=%s\n",s1);                                             
        printf("length of s1=%ld\n",strlen(s1));                          
        printf("last char=%d\n",s1[sizeof(s1)-1]);                        
        if(s1[strlen(s1)-1]==10)k++;                                      
        int i=0;                                                          
        while(s1[i]!='\0')                                                
        {                                                                 
            printf("s1=%d\n",s1[i]);                                      
            i++;                                                          
        }                                                                 
        sum=sum+i;                                                        
        printf("NUM of i=%d\n",i);                                        
        printf("%ld\n",ftell(f1));                                        
    }                                                                     
    printf("NUM OF J=%d\n",j);                                            
    printf("NUM OF K=%d\n",k);                                            
    printf("NUM OF sum=%d\n",sum);                                        
                                                                          
                                                                          
//  //FILE CLOSE                                                          
                                                                          
    fclose(f1);                                                           
    fclose(f2);                                                           
    while(1)                                                              
        sleep(2);                                                         
    return 0;                                                             
                                                                          
}                                                                         

result

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值