⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 call.c

📁 tuxede下面的编程
💻 C
字号:

#include <stdio.h>
#include <ctype.h>
#include <atmi.h>	/* TUXEDO Header File */
#include <userlog.h>	/* TUXEDO Header File */
#include "fml32.h"
#include "myfml.h"


CALL(TPSVCINFO *rqst)
{
	FILE *fp;
	long i=0;
	FBFR32 *rcvbuf;
	char fname[100]="";
	FLDLEN32 len=0;
	long bnum,bid,bsize=1024;
	char *fdata;
	
	
	
	rcvbuf=(FBFR32 *)rqst->data;
	len=sizeof(bid);
	if(Fget32(rcvbuf,BID,0,(char *)&bid,&len) == -1)
	{
		userlog("Fget32(BID) failure :%s",(char *)Fstrerror32(Ferror32));
		tpreturn(TPFAIL,0,0,0,0);
	}
	
	len=sizeof(fname);
	if(Fget32(rcvbuf,FNAME,0,fname,&len) == -1)
	{
		userlog("Fget32(FNAME) failure :%s",(char *)Fstrerror32(Ferror32));
		tpreturn(TPFAIL,0,0,0,0);
	}
	
	if ((fp=fopen(fname, "rb"))==NULL)	
	{ 
		fp=fopen(fname, "wb");
	}
	else if(bid == 0 )	
	{
		fclose(fp);
		fp=fopen(fname, "wb");
	}
	else
	{
		fclose(fp);
		fp = fopen(fname, "r+b");
	}
	
	if(fp == NULL)
	{
		userlog("fopen() %s failure\n",fname);
		tpreturn(TPFAIL,0,0,0,0);	
	}
	fdata=(char *)malloc(bsize);
	if(fdata == NULL)
	{
		userlog("malloc(fdata) failure");
        	tpreturn(TPFAIL,0,0,0,0);		
	}	
	len=sizeof(bnum);
	if(Fget32(rcvbuf,BNUM,0,(char *)&bnum,&len) == -1)
	{
		userlog("Fget32(BNUM) failure :%s",(char *)Fstrerror32(Ferror32));
		tpreturn(TPFAIL,0,0,0,0);
	}
	
	len=bsize;
	if(Fget32(rcvbuf,FDATA,0,fdata,(FLDLEN32 *)&len) == -1)
	{
		userlog("Fget32(FDATA) failure :%s",(char *)Fstrerror32(Ferror32));
		tpreturn(TPFAIL,0,0,0,0);
	}
	
	i=bid * bsize;
	if(fseek(fp, i, 0)!=0)
	{
		userlog("fseek() failure\n");
		tpreturn(TPFAIL,0,0,0,0);		
	}
	i = fwrite(fdata,1,len,fp);
	if(i != len)
	{
		userlog("fwrite()fail\n");
		tpreturn(TPFAIL,0,0,0,0);	
	}
	fclose(fp);
	tpreturn(TPSUCCESS, 0, NULL, 0L, 0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -