AS/400 自身的文件系统是 QSYS.LIB library ,为了与其他异构平台相兼容,引入集成文件系统( Integrated File System , IFS ) 的概念。
下图截取自“ Navigator for i ”。
从中可以看到, AS/400 除了支持自身的 Library(QSYS.LIB) 以外,还支持另外六种文件系统以支持相应的文件系统,体现了 AS/400 具有平台的开放性和兼容性。
The File Server (QFileSvr.400) file system
由于工作的需要,有些客户要用手动的方法将数据从 QSYS.LIB 复制到其他文件系统,不是很方便快捷。下面通过一个 ILE C 程序,简单地介绍将数据从 AS/400 自身的 QSYS.LIB 文件系统写入到集成文件系统 root ( / ) 中文本文件的方法。
/*----------------------------------------------------------------*/
/* Write data from AS/400 to file in IFS (root /) */
/* C LANGUAGE */
/* */
/* EDITED BY XIAO QING ,2022/3 */
/*----------------------------------------------------------------*/
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#define BUF_SIZE 256
#define TRUE 0
#define FALSE -1
void main(void){
char dir[] = "/XIAOQING/HOME.TXT";
int fd = FALSE;
int rc = FALSE;
char buff[BUF_SIZE];
long len;
memset(buff, 0, sizeof(buff));
strcpy(buff, "This is a test.");
len = strlen(buff);
/***************************************************/
/* First create the file. */
/***************************************************/
if((fd = open(dir, O_WRONLY | O_CREAT | O_TRUNC))== -1)
{
printf("%s can't be created. \\n",dir);
getchar();
return;
}
/***************************************************/
/* Write data to IFS file */
/***************************************************/
if ((rc = write(fd, buff, len))==-1)
{
printf("%s Write failed");
getchar();
return;
}
/***************************************************/
/* Close the IFS */
/***************************************************/
if ((rc = close(fd)<0))
{
printf("%s Close failed");
getchar();
return;
}
}
这个程序用到了 open 函数,用它打开集成文件系统 root 中某个文件 ( /XIAOQING/HOME.TXT ) ,它需要引用头文件,即 include <fcntl.h> ,另外需要注意的是 open 函数中的参数” O_WRONLY | O_CREAT | O_TRUNC “的用法,组合在一起的含义是以只读的方式打开文件,如果这个文件不存在就创建一个新文件;如果路径不存在,会报错;如果这个文件已存在,将这个文件的内容清空,然后,用 write 函数将数据写入 /XIAOQING/HOME.TXT ,最后,关闭这个文件。
当然也可以用 read 函数从文本文件读取数据,就不具体介绍了。
编译之后执行。
程序被执行之后,会在目录“ /XIAOQING ”目录生成“ HOME.TXT" 文件,然后打开这个文件,就可以看到数据“ This is a test.” 已被写入。
https://www.ibm.com/docs/en/i/7.2
仅供参考
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞2
添加新评论0 条评论