分类:
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)