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

📄 serverlib.c

📁 多用户银行系统
💻 C
字号:
/******************************************//**        functions for server          **//******************************************/#include "../include/serverlib.h"#include "../include/operdb.h"#include "../include/structs.h"#include "../include/stddef.h"#include <stdio.h>#include <unistd.h>#include <signal.h>void query(int index){	extern SHM *shm;	USER user;	char name[11];		int shmid;/*	shmid = shmget(KEY , SHM_SIZE , 0600);	shm = (SHM*)shmat(shmid , 0 , 0);*/	operdb(&user , (shm->swap_arr)[index].swap.inta);	//strcpy( (shm->swap_arr)[index].swap.chara , user.name);	//memcpy( (shm->swap_arr)[index].swap.chara , user.name , 10);	memcpy( name , user.name , 10);	name[10] = '\0';	strcpy( (shm->swap_arr)[index].swap.chara , name);	strcpy( (shm->swap_arr)[index].swap.charb , user.pwd);		(shm->swap_arr)[index].swap.inta = user.id;	(shm->swap_arr)[index].swap.intb = user.money;	(shm->swap_arr)[index].swap.over = DONE;//	shmdt(shm);//	return ;};void changepwd(int index){	USER user;	SHM *shm;		int shmid;		shmid = shmget(KEY,0,0);	shm = (SHM*)shmat(shmid,0,0);		operdb(&user, (shm->swap_arr)[index].swap.inta);	//int ptr1 = 0;	int ptr1 = strcmp(user.pwd,(shm->swap_arr)[index].swap.chara);		if(ptr1==0){				if((strcmp((shm->swap_arr)[index].swap.charb,(shm->swap_arr)[index].swap.charc))==0){					(shm->swap_arr)[index].swap.ok=1;					strcpy(user.pwd,(shm->swap_arr)[index].swap.charb);					operdb(&user,1);				}else{					(shm->swap_arr)[index].swap.ok=2;				}		}else{			(shm->swap_arr)[index].swap.ok = 3;		}	(shm->swap_arr)[index].swap.over = DONE;      //	return;}void trans(int index){        extern SHM *shm;        USER *user1 = (USER *)malloc(sizeof(USER));        USER *user2 = (USER *)malloc(sizeof(USER));	        if(operdb(user1, (shm->swap_arr)[index].swap.inta) == -1 )	{		(shm->swap_arr)[index].swap.ok = EID1;		(shm->swap_arr)[index].swap.over = DONE;		return;		}	if(strcmp(user1->pwd, (shm->swap_arr)[index].swap.chara) != 0)	{		(shm->swap_arr)[index].swap.ok = EPWD;		(shm->swap_arr)[index].swap.over = DONE;		return;	}        if(operdb(user2, (shm->swap_arr)[index].swap.intb) == -1)	{		(shm->swap_arr)[index].swap.ok = EID2;		(shm->swap_arr)[index].swap.over = DONE;		return;		}        if( user1->money < (shm->swap_arr)[index].swap.intc )        {		(shm->swap_arr)[index].swap.ok = EMONEY;		(shm->swap_arr)[index].swap.over = DONE;		return;        }        else        {                user1->money -= (shm->swap_arr)[index].swap.intc;                user2->money += (shm->swap_arr)[index].swap.intc;						(shm->swap_arr)[index].swap.intc = user1->money;				                operdb(user1, UPDATE);                operdb(user2, UPDATE);        }//	free(user1);//	free(user2);	(shm->swap_arr)[index].swap.over = DONE;}void draw(int index){		USER user;	extern SHM *shm;		int b;		operdb(&user,(shm->swap_arr)[index].swap.inta);		b = strcmp((shm->swap_arr)[index].swap.charb,user.pwd);	if(b == 0){		if((shm->swap_arr)[index].swap.intb > user.money){			(shm->swap_arr)[index].swap.ok = EMONEY;			(shm->swap_arr)[index].swap.over = DONE;			return;		}else{				user.money -= (shm->swap_arr)[index].swap.intb;			(shm->swap_arr)[index].swap.intb = user.money;			operdb(&user,UPDATE);			(shm->swap_arr)[index].swap.over = DONE;			return;		}	}else{		(shm->swap_arr)[index].swap.ok = EPWD;		(shm->swap_arr)[index].swap.over = DONE;		return;	}	(shm->swap_arr)[index].swap.over = DONE;	return;}void save(int index){        extern SHM * shm;        USER user;        operdb(&user, (shm->swap_arr)[index].swap.inta);        if(strcmp( user.pwd, (shm->swap_arr)[index].swap.charb) == 0)        {                user.money += (shm->swap_arr)[index].swap.intb;                operdb(&user, UPDATE);		(shm->swap_arr)[index].swap.over = DONE;                (shm->swap_arr)[index].swap.intb = user.money;        }        else        {		(shm->swap_arr)[index].swap.ok = EPWD;		(shm->swap_arr)[index].swap.over = DONE;		return;        }	(shm->swap_arr)[index].swap.over = DONE;	return;} void adduser(int index){	 extern SHM *shm;	 USER user ;	 FILE *file;	 file = fopen("../file/value.add","r+");	 int uid;	 fread(&uid,sizeof(int),1,file);	 user.id = uid;	 strcpy(user.name,(shm->swap_arr)[index].swap.chara);	 strcpy(user.pwd,(shm->swap_arr)[index].swap.charb);	 user.money = (shm->swap_arr)[index].swap.intb;	 (shm->swap_arr)[index].swap.inta = uid;	 operdb(&user,2);	 fseek(file,0,0);	 uid = uid + 1;	 printf("value %d\n",uid);	 fwrite(&uid,sizeof(int),1,file);	 (shm->swap_arr)[index].swap.ok = 1;	 (shm->swap_arr)[index].swap.over = DONE;	 fclose(file);	 return;}  	 

⌨️ 快捷键说明

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