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

📄 interfac.c

📁 用C语言编的邮件系统(毕业论文)
💻 C
字号:
#include	"mail.h"struct message *msgp; MAIL *openfile(char *file){ MAIL *mail; if( (mail=mail_open(file, O_RDWR ,FILE_MODE))==NULL)     err_sys("mail_open error");return mail;}MAIL *newfile(char *file){ MAIL *mail; if ( (mail = mail_open(file, O_RDWR | O_CREAT | O_TRUNC,				FILE_MODE)) == NULL)		err_sys("mail_new error");return mail;}int getmsgfrmdb(char *user){  FILE *fp;  MAIL *mail;  char key[1024],*ptr,ch;   int i,j,keylen;    mail=openfile(user);    if((fp=fopen(TMPMSGFILE,"w+"))==NULL)     err_sys("open MSGFILE error");   i=0;   msgph=(struct message*)calloc(100,sizeof(struct message));    msgp=msgph;          mail_rewind(mail);   do    {       ptr=mail_nextrec(mail,key);      if(ptr!=NULL)       {        for(j=0,msgp=msgph;j<i;j++,msgp++);        msgp->messageid=(char*)malloc(strlen(key));        msgp->content=(char*)malloc(strlen(ptr));        strcpy(msgp->messageid,key);        strcpy(msgp->content,ptr);              if(i==0)        {            fprintf (fp,"You have mail.\n");           fprintf (fp,"\n");         }           fprintf(fp,"%d\t%s\n",i+1,hint);        i++;       }    }while(ptr!=NULL);  if(i==0)   fprintf(fp,"No mail for you!");                                           fclose(fp);      mail_close(mail);  return 0;  }void showmsghdr(int fd,int sd){ char buf[MAXLINE]; int len;  while((len=ReadLine(fd,buf,MAXLINE))>0)     write(sd,buf,len); close(fd); }/*msgp can be set up when the client come into the systemand be free when the client leave the system*//*char *GetMail(int msgno){  return(msgp[msgno]->content);        }*/int StoreMail(struct message *msg){  MAIL *mail;    struct stat statbuf;  char *name;  int len;    /*msg.to=ms->to;  msg.from=ms->from;  msg.subject=ms->subject;  msg.content=ms->content;  */  len=strlen(msg->to);  name=(char *)malloc(len+4+1);  strcpy(name,msg->to);  strcat(name,".idx");  if(stat(name,&statbuf)<0)      mail=newfile(msg->to);    else      mail=openfile(msg->to);  if (mail_store(mail, msg) != 0)     err_quit("mail_store error for");  mail_close(mail);  free(name);  return 0;}int DelMail(int msgno,char *user){ MAIL *mail;  int i;  msgp=msgph;  for(i=1;i<msgno;i++)msgp++;  mail=openfile(user);  mail_delete(mail,msgp->messageid);  mail_close(mail);}int GetMail(int msgno,char *buf){ int i; msgp=msgph; for(i=1;i<msgno;i++)msgp++; /*printf("in getmail content=%s",msgp->content);*/ strcpy(buf,msgp->content);}int client_close(int sd){ free(msgp); return close(sd);}

⌨️ 快捷键说明

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