Linux动态分配内存 open 、read、write操作文件

#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#define N 1024*1024
int main()
    {
        printf("--%s--%d\n",__func__,__LINE__);
        FILE *fp_d;
        FILE *fp_srgb;
        FILE *fp_p3;
        int xiaoyuhao2=0;
        int z2=0;
        int y=0;
        int FLAG=0;
        int FLAG2=1;
		int i,j;
        char * srgb=malloc(1024*1024*1024*sizeof(int));
        //char * p3=malloc(1024*1024*1024*sizeof(int));
        fp_d = fopen("HELLO.xml","r");

		fseek(fp_d,0, SEEK_END);
		int filelong=ftell(fp_d);
		printf("________%d--------\n", filelong);
		char * tmp1=malloc((filelong+1)*sizeof(char));
        memset(srgb,0,sizeof(srgb));
        memset(tmp1,0,sizeof(tmp1));

		fseek(fp_d,0, SEEK_SET);

        if (fp_d == NULL)
        {
            printf("errno=%d\n",errno);
            perror("perror");
            printf("open HELLO.xml faild\n");
            exit(1);
        }
        while (!feof(fp_d)) 
        {
            fgets(tmp1, filelong+5, fp_d);
			printf("temp1=[%s]\n\n\n", tmp1);
            for(i=0;i<=filelong+5;i++)
            {
#if 1
                //strcat(srgb,"<DEVICE_VALIDATIONS>");
                //z2=20;
                if (FLAG2==1)
                    {
                        for(j=0;j<=50;j++)
                        {
                            printf("tmp1=%d--srgb=%c--%s--%d\n",*(tmp1+j),*(srgb+z2),__func__,__LINE__);
                            if(*(tmp1+j)!=0)
                                    {
                                        (*(srgb+z2))=(*(tmp1+j));
                                        z2++;
                                        //printf("tmp1=%c--srgb=%c--%s--%d\n",*(tmp1+j),*(srgb+z2),__func__,__LINE__);
                                    }
                        }
                        //*(srgb+z2)='>';
                        //z2++;
                            FLAG2=0;
                        }
#endif
                if (*(tmp1+i)==60)
                    {
                        xiaoyuhao2++;
                        //printf("--%s--%d\n",__func__,__LINE__);
                    }
                if (*(tmp1+i)==62)
                    {
                        //printf("--%s--%d\n",__func__,__LINE__);
                        if(FLAG==1)
                            {
                                //printf("--%s--%d\n",__func__,__LINE__);
                                y=y+2;
                                }
                                FLAG=1;
                    }
                if ((xiaoyuhao2>=(y+2)) && (xiaoyuhao2<(y+3)))
                    {
                        //printf("xiaoyuhao=%d--y=%d--tmp1=%c--%s--%d\n",xiaoyuhao2,y,*(tmp1+i),__func__,__LINE__);
                        if(*(tmp1+i)!=0)
                            {
                                (*(srgb+z2))=(*(tmp1+i));
                                //printf("xiaoyuhao=%d--y=%d--tmp1=%d--srgb=%c--%s--%d\n",xiaoyuhao2,y,*(tmp1+i),*(srgb+z2),__func__,__LINE__);
                                z2++;
                        }
                    }        
            }
                //printf("excel= %s\n",excel);
        }
    printf("\n\n%ldSRGB=%s\n\n\n",strlen(srgb),srgb);
#if 0
    putchar(10);
    for (int j=0;j<6;j++)
    {
        printf("%c",(*(srgb+j)));
        }
        putchar(10);
#endif
    
    
    
    
    
        fp_srgb = fopen("HELLO2.xml","w+");
        if (fp_srgb == NULL)
            {
                printf("open SRGB.xml faild");
                exit(1);
            }
        fwrite(srgb,strlen(srgb),1,fp_srgb);
        fclose(fp_d);
        fclose(fp_srgb);
        //fclose(fp_c);

        printf("SUCCESS\n");
    
    
    
    
    
        
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值