CSDN博客

img maisuiki

多进程银行菜单总结

发表于2008/9/28 21:52:00  381人阅读

多用户(多进程)银行系统总结:

主要技术:共享内存;信号量;proc;数据库;守护进程;信号;动态链接库
 
共享内存:共享内存中放置了一个结构体数组和一个信号量标志位,此信号量标志位只允许 一个getshm()函数去获得结构体数组中 的结构体.结构体数组中的每个结构体又包含结构体信息和一个信号量标志位,此信号量标志位,为了查看这个结构体有没有没占用
信号量:  信号量也是一块小的内存空间
守护进程:一个进程,fork() 出一个子进程后,父进程退出,然后执行execut();此时第一子进程退出了当前进程组,重新开辟了一 个进程组,并成为了组长,然后第一子进程再fork()出第二子进程(孙进程);然后第一子进程退出,此时第二子进程就独立存在于这个进程组中而且没有了终端,这个第二子进程便是守护进程 
守护进程它的子进程也没有控制终端,只在后台执行
信号:简单的发送信号用 kill(),signal(),较复杂的信号发送用 sigqueue();sigaction(),一般都是匹配使用,具体参数查看man手  册
     
错误1: 从数据库中读出的数据,末尾没有'/0',当有程序在外部 printf时,
        打印完一条数据库中的数据时,printf不会停止,而是继续打印数据
        库中的一条数据后面的数据.
 当要从数据库中读数据时,要在给数据库定义数据时,先把数据所有位先
        置为 '/0'.

错误2:  当用 strcmp函数时 ,
 如char name[10],char name[11];定义的 两个 数组位数不相同 ,
        会导致 这两个字符串不匹配.

错误3:  当要从数据库中读数据时,先要查看数据库实例开启了没有,如果没有开
        启,要先进入数据库用户 startup 开启数据库

一些相关命令: ps -ef| grep ... 查询当前运行的进程
              ipcs -m  查询进程通信机构ipc机构
              ipcrm -m spid  删除相关的进程通信的机构

注意:  1:server服务器一般只能启动一次,如果已经启动,注意不要重复开启
       2: kill -9  id 可删除删除服务器进程和客户端进程
       3:进程间通信机构 如共享内存等,一般也只启动一次,如果重复开启,可能
         会导致数据混乱
       4:连续执行了几个scanf之后,要调用一下getchar()函数;
       5:当 客户端 接受完信号之后 ,用pause()函数挂起,等待服务器执行完后台操作之后,接收来自服务器的信号,然后继续往下执行         6:scanf()函数中,参数是一个地址,如果是 一个数组,则可以直接用数组名(即此数组的首地址);

0 0

相关博文

我的热门文章

img
取 消
img