嵌入式linux下c编程:如何接受临时文件?
任务:我在一网页填写一表格,然后提交;传到服务器,通过SENGMAIL.CGI把表格变为临时文件
传到SERIALCOMM.C处理。我不知道SERIALCOMM.C怎么接受这个临时文件?怎么编写?我编的两个文
件如下:
--------------------
#!/bin/sh
#SENGMAIL.CGI
echo "START!!!"
echo
FRAME=dat_$$
>;|$FNAME
read mydata
echo $mydata >;>;$FRAME
/serialcomm <$FRAME
rm $FRAME
-----------------
/*SERIALCOMM.C*/
int main(int argc ,char *argv[])
{
FILE *fp;
int fd,ncount=256,count=0;
struct termios oldtio,newtio;
char buf[256];
struct stat st;
if (argc>;2){
printf("Too many parameters...\n"
exit(0);}
fd=open(SERIALDEVICE,O_RDWR|O_NOCTTY);
if(fd<0){
perror(SERIALDEVICE);
exit(-1);
}
tcgetattr(fd,&oldtio);
bzero(&newtio,sizeof(newtio));
newtio.c_cflag=BAUDRATE|CS8|CLOCAL|CREAD;
newtio.c_iflag=IGNPAR|ICRNL;
newtio.c_oflag=0;
newtio.c_lflag=ICANON;
tcflush(fd,TCIFLUSH);
fcntl(fd,F_SETFL,0);
tcsetattr(fd,TCSANOW,&newtio);
stat(stdin,&st);
if((fp=fopen(stdin,"r")==FILE *0){
printf("Can't find the file"
return 0;
}
/*问题出在如何接受sengmail.cgi中的$FRAME
临时文件,其它源码没问题*/
filelength=st.st_size;
printf("character to send is :\n"
while(ncount==256){
bzero(buf,256);
ncount=fread(buf,1,256,fp);
ncount=write(fd,buf,ncount);
count+=ncount;
printf("%s\n",buf);
}
printf("the bytes written to serial is %d\n",count);
perror("WRITE"
tcsetattr(fd,TCSANOW,&oldtio);
close(fd);
return 0;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
既然已经生成文件了,就不用从stdin打开了,直接打开那个文件就好了
"/serialcomm <$FRAME"不需要用"<"