📄 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 + -