linux device drive 第六章代码示例-scullpipe的实验(poll和fasync方法的实现)之三
实验测试结果
[Tekkaman2440@SBC2440V4]#cd /lib/modules/[Tekkaman2440@SBC2440V4]#insmod pipe.ko[Tekkaman2440@SBC2440V4]#cat /proc/devicesCharacter devices: 1 mem 2 pty 3 ttyp 4 /dev/vc/0 4 tty 4 ttyS 5 /dev/tty 5 /dev/console 5 /dev/ptmx 7 vcs 10 misc 13 input 14 sound 81 video4linux 89 i2c 90 mtd116 alsa128 ptm136 pts180 usb189 usb_device204 s3c2410_serial252 pipe253 usb_endpoint254 rtcBlock devices: 1 ramdisk256 rfd 7 loop 31 mtdblock 93 nftl 96 inftl179 mmc[Tekkaman2440@SBC2440V4]#cd /dev/[Tekkaman2440@SBC2440V4]#[Tekkaman2440@SBC2440V4]#cd /tmp/[Tekkaman2440@SBC2440V4]#./pipe_test &[Tekkaman2440@SBC2440V4]#open scullpipe0 !open scullpipe1 ! SCULL_P_IOCTSIZE : scull_p_buffer0=21 ! SCULL_P_IOCTSIZE : scull_p_buffer1=21 !close pipetest0 !close pipetest1 !reopen scullpipe0 !reopen scullpipe1 ![Tekkaman2440@SBC2440V4]#echo 12345678901234567890 > /dev/scullpipe0[Tekkaman2440@SBC2440V4]#read from pipetest0 code=20[0]=1 [1]=2 [2]=3 [3]=4 [4]=5[5]=6 [6]=7 [7]=8 [8]=9 [9]=0[10]=1 [11]=2 [12]=3 [13]=4 [14]=5[15]=6 [16]=7 [17]=8 [18]=9 [19]=0read from pipetest0 code=1[0]= [1]=2 [2]=3 [3]=4 [4]=5[5]=6 [6]=7 [7]=8 [8]=9 [9]=0[10]=1 [11]=2 [12]=3 [13]=4 [14]=5[15]=6 [16]=7 [17]=8 [18]=9 [19]=0[Tekkaman2440@SBC2440V4]#echo 12345678901234 > /dev/scullpipe1[Tekkaman2440@SBC2440V4]#read from pipetest1 code=15[0]=1 [1]=2 [2]=3 [3]=4 [4]=5[5]=6 [6]=7 [7]=8 [8]=9 [9]=0[10]=1 [11]=2 [12]=3 [13]=4 [14]=[15]=6 [16]=7 [17]=8 [18]=9 [19]=0[Tekkaman2440@SBC2440V4]#ps PID Uid VSZ Stat Command 1 root 1744 S init 2 root SW< [kthreadd] 3 root SWN [ksoftirqd/0] 4 root SW< [watchdog/0] 5 root SW< [events/0] 6 root SW< [khelper] 59 root SW< [kblockd/0] 60 root SW< [ksuspend_usbd] 63 root SW< [khubd] 65 root SW< [kseriod] 77 root SW [pdflush] 78 root SW [pdflush] 79 root SW< [kswapd0] 80 root SW< [aio/0] 707 root SW< [mtdblockd] 708 root SW< [nftld] 709 root SW< [inftld] 710 root SW< [rfdd] 742 root SW< [kpsmoused] 751 root SW< [kmmcd] 769 root SW< [rpciod/0] 778 root 1752 S -sh 779 root 1744 S init 781 root 1744 S init 783 root 1744 S init 785 root 1744 S init 796 root 1344 S ./pipe_test 797 root 1744 R ps[Tekkaman2440@SBC2440V4]#./asynctest &[Tekkaman2440@SBC2440V4]#echo 12345678901234 > /dev/scullpipe0[Tekkaman2440@SBC2440V4]#12345678901234close pipetest0 !exit ![2] + Done ./asynctest[Tekkaman2440@SBC2440V4]#cat /proc/scullpipeDefault buffersize is 21Device 0: c3e18494 Queues: c04f1c34 c04f1c34 Buffer: c3dc6c08 to c3dc6c1d (21 bytes) rp c3dc6c17 wp c3dc6c17 readers 1 writers 0Device 1: c3e18528 Queues: c04f1c6c c04f1c6c Buffer: c3dc6b38 to c3dc6b4d (21 bytes) rp c3dc6b47 wp c3dc6b47 readers 1 writers 0Device 2: c3e185bc Queues: c3e185bc c3e185bc Buffer: 00000000 to 00000000 (0 bytes) rp 00000000 wp 00000000 readers 0 writers 0Device 3: c3e18650 Queues: c3e18650 c3e18650 Buffer: 00000000 to 00000000 (0 bytes) rp 00000000 wp 00000000 readers 0 writers 0