如何在verifone中读取和写入.dat文件

时间:2015-08-02 06:51:54

标签: c point-of-sale verifone

我想在verifone中读取和写入文本或.dat文件以在其上存储数据。 我该怎么做? 这是我的代码

int main()
{
  char buf [255];
  FILE *tst;
  int dsply = open(DEV_CONSOLE , 0);
  tst = fopen("test.txt","r+");
  fputs("this text should write in file.",tst);
  fgets(buf,30,tst);

  write(dsply,buf,strlen(buf));
  return 0;
}

1 个答案:

答案 0 :(得分:1)

Vx解决方案"程序员手册第3章" (" 23230_Verix_V_Operating_System_Programmers_Manual.pdf")是关于文件管理的,包含我在处理终端上的数据文件时通常使用的所有功能。仔细阅读,我认为你会找到你需要的一切。

为了帮助您入门,您希望将<td>{{item.ssn|filter:'999-99-9999'}}</td> 与您想要的标志一起使用

  • open()(只读)
  • O_RDONLY(只写)
  • O_WRONLY(读写)
  • O_RDWR(使用文件末尾的文件位置指针打开)
  • O_APPEND(如果文件尚未存在,则创建该文件),
  • O_CREAT(如果文件已存在,则截断/删除以前的内容),
  • O_TRUNC(如果文件已存在则返回错误值)

成功时,open将返回一个正整数,该整数是一个句柄,可用于后续访问该文件。失败时,返回-1;

文件打开后,您可以使用O_EXCLread()来操作内容。

请务必致电write(),并在完成文件后传递打开的返回值。

上面的例子看起来像这样:

close()

您的评论也会询问有关搜索的问题。为此,您还需要使用以下其中一项的int main() { char buf [255]; int tst; int dsply = open(DEV_CONSOLE , 0); //next we will open the file. We will want to read and write, so we use // O_RDWR. If the files does not already exist, we want to create it, so // we use O_CREAT. If the file *DOES* already exist, we want to truncate // and start fresh, so we delete all previous contents with O_TRUNC tst = open("test.txt", O_RDWR | O_CREAT | O_TRUNC); // always check the return value. if(tst < 0) { write(dsply, "ERROR!", 6); return 0; } strcpy(buf, "this text should write in file.") write(tst, buf, strlen(buf)); memset(buf, 0, sizeof(buf)); read(tst, buf, 30); //be sure to close when you are done close(tst); write(dsply,buf,strlen(buf)); //you'll want to close your devices, as well close(dsply); return 0; } 来指定您的起点:

  • lseek - 文件开头
  • SEEK_SET - 当前搜索指针位置
  • SEEK_CUR - 文件结束

例如

SEEK_END

请注意,内部文件指针已经是AT&#34; curPosition&#34;,但是这样做可以让我在操作那里时向前和向后移动。因此,例如,如果我想回到之前的数据结构,我只需设置&#34; curPosition&#34;如下:

SomeDataStruct myData;
...
//assume "curPosition" is set to the beginning of the next data structure I want to read
lseek(file, curPosition, SEEK_SET);
result = read(file, (char*)&myData, sizeof(SomeDataStruct));
curPosition += sizeof(SomeDataStruct);
//now "curPosition" is ready to pull out the next data structure.

如果我不想跟踪&#34; curPosition&#34;,我还可以执行以下操作,这也会将内部文件指针移动到正确的位置:

curPosition -= 2 * sizeof(SomeDataStruct);

你可以选择最适合你的方法。