《这是模拟GPS定位系统源代码,这只是服务端!!!》~只供参考
#include"file.h"
#include"ser_gps.h"
#define DEBUG_PRINTF sFile=__FILE__, sLine=__LINE__,sDATE=__DATE__,sTIME=__TIME__;
int ser_getConfig(char *fileName, char *name, char *value);
TAXI g_head = NULL;//全局变量
char *sFile=NULL;
char *sDATE=NULL;
char *sTIME=NULL;
int sLine;
void debuglog(char *fmt, ...)
{
va_list ap;
static FILE *fp=NULL;
if(fp==NULL)
{
fp = fopen("./log.txt", "a");
if(fp==NULL)
{
return;
}
}
fprintf(fp, "%s_%d_%s_%s:", sFile, sLine, sDATE, sTIME);
va_start(ap, fmt);
vfprintf(fp, fmt, ap);
va_end(ap);
fprintf(fp, "\n");
fflush(fp);
}
void write_configuration(char *buf)//写用户的信息
{
FILE *fd;
fd = fopen("user_conf.txt", "a");
fprintf(fd, "%s", buf);
//printf("write_configuration 函数 buf = %s\n\n",buf);
fclose(fd);
}
int delete_file_a_listlink(char *message)//删除文件的一个链表(注册的链表),行参是车牌号
{
TAXI phead = NULL;
TAXI p = NULL;
TAXI head = NULL;
head = taxi_file_read(head);//读文件信息
phead = head;
p = head;
if(head == NULL)
{
return -1;
}
while(phead != NULL)
{
//printf("进入循环》》》\n");
if(phead != head)//中间删
{
//printf("**********进入中间删**************\n");
if((strcmp(phead->car_num, message)) == 0)
{
p->next = phead->next;
free(p);
taxi_file_write(head);
//printf("**********中间删成功**************\n");
break;
}
else
{
p = phead;//p它是phead的上一个节点
}
phead = p->next;//head 移到下一个节点
}
else//头删
{
//printf("**********进入头删**************\n");
if((strcmp(head->car_num, message)) == 0)
{
head = phead->next;
free(phead);
taxi_file_write(head);
//printf("**********头删成功!!**************\n");
break;
}
else
{
phead = phead->next;//之后phead不在指向头
}
}
}
if(phead != NULL)
{
printf("删除文件的节点成功...\n");
return 0;
}
else
{
printf("\n没找到相同的车牌号...可能输入错误.\n");
printf("******删除失败!!!!******\n");
return -2;
}
}
void delete_behind_deal(char *message, int sd)
{
int ret;
ret = delete