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

📄 2

📁 多用户银行系统
💻
字号:
/******************************************//**        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){	SHM *shm;	USER user;		int shmid;	shmid = shmget(KEY , SHM_SIZE , 0600);	shm = (SHM*)shmat(shmid , 0 , 0);	operdb(&user , (shm->swap_arr)[index].swap.inta);/*		memcpy( (shm->swap_arr)[index].swap.chara , "test" , 4);	strcpy( (shm->swap_arr)[index].swap.chara , "test");	strcpy( (shm->swap_arr)[index].swap.charb , "test");	strcpy( (shm->swap_arr)[index].swap.charc , "test");*/		strcpy( (shm->swap_arr)[index].swap.chara , user.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.intb = 100;	strcpy( (shm->swap_arr)[index].swap.charc , "in query");		shmdt(shm);	return ;};void changepwd(int index){	USER *user;	SHM *shm;	int shmid;	user = (USER *)malloc(sizeof(USER));	operdb(user, (shm->swap_arr)[index].swap.inta);	shmid = shmget(KEY,SHM_SIZE,0600);	shm = (SHM*)shmat(shmid,0,0);		//int ptr1;	//int ptr2;	//while(1){		//ptr1 = strcmp((shm->swap_arr)[index].swap.chara , user->pwd);		if((strcmp((shm->swap_arr)[index].swap.chara , (user->pwd)))==0){		//if((shm->swap_arr)[index].swap.chara,(user->pwd)== 0 ){			//while(1){				//ptr2 = strcmp((shm->swap_arr)[index].swap.charb,(shm->swap_arr)[index].swap.charc);				if((strcmp((shm->swap_arr)[index].swap.charb,(shm->swap_arr)[index].swap.charc))==0){					strcpy(user->pwd,(shm->swap_arr)[index].swap.charb);					strcpy(user->name,user->name);					user->id = user->id;					user -> money = user->money;					operdb(user,1);					(shm->swap_arr)[index].swap.ok=1;					//break;				}else{			/*		strcpy(user->pwd,user->pwd);					strcpy(user->name,user->name);					user->id = user->id;					user -> money = user->money;					operdb(user,1);			*/					(shm->swap_arr)[index].swap.ok=2;				//	break;				}		//	}		//break;		}else{		/*	strcpy(user->pwd,user->pwd);			strcpy(user->name,user->name);			user->id = user->id;			user -> money = user->money;			operdb(user,1);		*/			(shm->swap_arr)[index].swap.ok = 3;		//	break;		}//	}}/*void from_to(int index){        //int shmid;        //key_t key;        extern SHM *shm;        USER *user1 = (USER *)malloc(sizeof(USER));        USER *user2 = (USER *)malloc(sizeof(USER));        key = ftok("/root/test.c", 0);        shmid = shmget(key, SHM_SIZE, 0600);        shm = (SHM *)shmat(shmid, NULL, 0);	        operdb(user1, (shm->swap_arr)[index].swap.inta);        operdb(user2, (shm->swap_arr)[index].swap.intb);       // if( strlen(user1) != 0 )        {        //        if( strlen(user2) == 0 )                {                        (shm->swap_arr)[index].swap.ok = 1;			//printf("no user exist with id %d\n", (shm->swap_arr)[index].swap.intb);                }                else                {                        if( user2->money < (shm->swap_arr)[index].swap.intc )                        {                                //printf("money not enough.\n");				(shm->swap_arr)[index].swap.ok = 2;                        }                        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, 1);                                operdb(user2, 1);                        }                }        }        else        {                //printf("no user exit with id %d\n", (shm->swap_arr)[index].swap.inta);		(shm->swap_arr)[index].swap.ok = 3;        }}void withdraw(int index){		USER *user = (USER *)malloc(sizeof(USER));	extern SHM *shm;	int b;		operdb(user,(shm->swap_arr)[index].swap.inta);		b = strcpy((shm->swap_arr)[index].swap.charb,user->pwd);	if(b == 0){		if((shm->swap_arr)[index].swap.inta >user->money){			//printf("you have no enough money to draw,please try again!\n");			(shm->swap_arr)[index].swap.ok = 1;			return;			}			user->money -= (shm->swap_arr)[index].swap.inta;		(shm->swap_arr)[index].swap.inta = user->money;		operdb(user,1);	}else{		//printf("wrong password!!\n");			(shm->swap_arr)[index].swap.ok = 2;		return;	}}void save(int index){        extern SHM * shm;        USER *user = (SHM *)malloc(sizeof(USER));        operdb(user, (shm->swap_arr)[index].swap.inta);        if(strcpy( user->pwd, (shm->swap_arr)[index].swap.charb) == 0)        {                user->money += (shm->swap_arr)[index].swap.intb;                operdb(user, 1);                (shm->swap_arr)[index].swap.intb = user->money;        }        else        {                //printf("pwd wrong!\n");		(shm->swap_arr)[index].swap.ok = 1;        }}*/

⌨️ 快捷键说明

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