Chinaunix首页 | 论坛 | 博客
  • 博客访问: 140503
  • 博文数量: 27
  • 博客积分: 1450
  • 博客等级: 上尉
  • 技术积分: 255
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-14 20:14
文章分类

全部博文(27)

文章存档

2012年(2)

2011年(3)

2010年(2)

2008年(20)

我的朋友

分类:

2011-01-31 15:28:54

AS400下C语言读写member操作

一个简单程序的小程序, 从第一个MBR中读最多1024个字符到第二个文件,
文件名那个字串的格式为 LIB/FILE(MEMBER)

/* 建一个 lib */
crtlib ctest

/* 建一个物理文件 */
crtsrcpf ctest/CSRC

/* 增加一个 MBR, 里面是将要读的数据,里面随便放一些数据 */
ADDPFM FILE(CTEST/CSRC) MBR(FILE1)  

/* 新建 C 源程序 */
ADDPFM FILE(CTEST/CSRC) MBR(FILERW)

/* 编辑 C 程序 */
WRKMBRPDM FILE(CTEST/CSRC) MBR(FILERW)

/* 加入如下代码 */
#include
#include  
#include

#define MAXLEN 1024
#define INPUTF "CTEST/CSRC(FILE1)"
#define OUTPUTF "CTEST/CSRC(FILE2)"

int main()
{         
    FILE *fpIn=NULL;
    FILE *fpOut=NULL;
    int len_read = 0;
    char *pstr=NULL;
                    
    fpIn = fopen(INPUTF, "r");
    if(fpIn == NULL)
    {              
        printf("Unable to open the input file %s\n", INPUTF);
        return -1;
    }             
                  
    fpOut = fopen(OUTPUTF, "w");
    if(fpIn == NULL)            
    {                           
        fclose(fpIn);           
        printf("Unable to open the output file %s\n", INPUTF);
        return -2;                              
    }                                           
                                                
    pstr = (char*)malloc(MAXLEN *sizeof(char)); 
    if(pstr == NULL)                            
    {                                           
        fclose(fpIn);                           
        fclose(fpOut);                          
        printf("Allocate memory failed\n");     
        return -3;                              
    }                         
    /* Read from File1 */                       
    memset(pstr, 0, MAXLEN);                    
    len_read = fread(pstr, sizeof(char), MAXLEN-1, fpIn);     
    if(len_read < 0)  
    {                 
        fclose(fpIn); 
        fclose(fpOut);
        free(pstr);   
        printf("Read data error");                            
        return -4;                                            
    }                        
    /* Out put to screen */                                   
    printf("The data we read are:\n");                        
    printf("%s\n", pstr);                                     

    /* Write to file2 */
    fwrite(pstr, sizeof(char), len_read, fpOut);              
    free(pstr);    
    fclose(fpIn); 
    fclose(fpOut);
    pstr=NULL;    
    fpIn=NULL;    
    fpOut=NULL;   
    return 1;     
}        

/* 编译 */
CRTBNDC PGM(CTEST/FILERW) SRCFILE(CTEST/CSRC) OUTPUT(*PRINT)

/* 运行 */
CALL PGM(CTEST/FILERW)

阅读(2122) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~