zoukankan      html  css  js  c++  java
  • eventfd

    static int fd;
    static uint64_t buffer;
    
    static void threadFunc(void)   //线程函数
    {
    	int t;
    	eventfd_t value;
    	int ret = -1;
    	while(1)
    	{
    	
    #if 0 
    	     t = read(fd,&buffer,sizeof(buffer));       //阻塞等待fd可读,及通知事件发生
    	     if(sizeof(buffer) < 8)
    	     {
    	        printf("buffer错误
    ");
    	     }
    	     printf("t = %llu   buffer = %llu
    ",t,buffer);
    	     if(t == 8)
    	     {
    	        printf("唤醒成功
    ");
    	     }
    #endif  
    		//eventfd_read(int fd, eventfd_t value);
    		///ret = eventfd_read(fd,value);
    		//printf("ret is %d
    ",ret);
    		//printf("value is %d
    ",value);
    		t = eventfd_read(fd,&value);
    		printf("t is %d, value is %d
    ",t,value);
    		
    	}    
    }
    
    int main(int argc, char * argv [ ])
    {
        uint64_t buf = 1;
        int ret;
    	eventfd_t value;
        pthread_t tid;
        if((fd = eventfd(0,0)) == -1)   //创建事件驱动的文件描述符
        {
            printf("创建失败
    ");
        }
     
        //创建线程
        if(pthread_create(&tid,NULL,threadFunc,NULL) < 0)
        {
            printf("线程创建失败
    ");
        }
     
        while(1)
        {
        
    #if 0
    	    ret = write(fd,&buf,sizeof(buf));  //通过往fd里写东西来进行事件通知
    	    if(ret != 8)
    	    {
    	        printf("写错误
    ");
    	    }
    		else 
    		{
    			printf("ret  is 11111 0x%d
    ",ret);
    		}
    		
    		printf("ret is 0x%d
    ",ret);
    	    sleep(2);   //没2s通知一次 
    #endif 
    
    #if 1 
    		//int eventfd_write(int fd, eventfd_t value);
    		value = 1 ;
    		ret = eventfd_write(10,value);  // 这个success return 0 不是sizeof(eventfd_t) failure -1 
    		printf("ret is eventfd write %d
    ",ret);
    		sleep(2);
    #endif 
    		
    		
        }
     
        return 0;
    }
    

      

    一勤天下无难事。
  • 相关阅读:
    unity HideInInspector与SerializeField
    Unity3D之游戏架构脚本该如何来写(转)
    写在创业公司工作后
    工作选择
    指针引用
    sqrt函数实现
    超平面
    【读书笔记】读《程序员面试宝典》
    【小白学游戏常用算法】一、随机迷宫算法
    【Cocos2d-x游戏开发】浅谈游戏中的坐标系
  • 原文地址:https://www.cnblogs.com/nowroot/p/14119930.html
Copyright © 2011-2022 走看看