当前位置:  技术问答>linux和unix

帮我看看,这个代码怎么编不过呢,aio问题

    来源: 互联网  发布时间:2016-02-23

    本文导语:  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  int main(int argc, char *argv[]) {     int sockfd, newfd;     struct sockaddr_in server_addr, client_addr;     char buffer[64];     struct aiocb myaiocb;   ...

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

int main(int argc, char *argv[])
{
    int sockfd, newfd;
    struct sockaddr_in server_addr, client_addr;
    char buffer[64];
    struct aiocb myaiocb;
    ssize_t rt, aiocb_list_max_size, aiort;
    struct aiocb *aiocb_list[1];
    memset(buffer, '', sizeof(buffer));

    if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
    {
        printf("Socket error:%sna", strerror(errno));
        exit(1);
    }

    bzero(&server_addr, sizeof(struct sockaddr_in));
    server_addr.sin_family = AF_INET;
    server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
    server_addr.sin_port = htons(8000);

    if(bind(sockfd, (struct sockaddr *)(&server_addr), sizeof(struct sockaddr)) == -1)
    {
        printf("Bind error:%sna", strerror(errno));
        exit(1);
    }

    if(listen(sockfd, 5) == -1)
    {
        printf("Listen error:%sna", strerror(errno));
        exit(1);
    }

    bzero(&myaiocb, sizeof(struct aiocb));
    myaiocb.aio_fildes = newfd + 1;
    myaiocb.aio_offset = 0;
    myaiocb.aio_buf = (void*)buffer;
    myaiocb.aio_nbytes = sizeof(buffer);
    rt = aio_read(&myaiocb);

    if(rt == 0)
    {
        aiocb_list[0] = &myaiocb;
        aiocb_list_max_size = 1;

        while(1)
        {
            rt = aio_suspend(aiocb_list, aiocb_list_max_size, NULL);
            if(rt == -1)
            {
                printf("suspend error!");
            }
            else
            {
                aiort = aio_return(aiocb_list[0]);
                if(aiort == 0)
                {
                    close(newfd);
                    break;
                }
                else
                {
                    if(aiocb_list[0] != NULL)
                    {
                        printf("size: %dn", aiort);
                        printf("buffer: %sn", (char*)(aiocb_list[0]->aio_buf));
                        bzero(buffer, sizeof(buffer));
                        rt = aio_read(&myaiocb);
                        if(rt == 0)
                            continue;

                    }
                    break;
                }
            }
        }
    }

    return 1;
}

[root@localhost sock_test]# gcc -o aio_read_test.out -g aio_read_test.c
aio_read_test.c: In function `main':
aio_read_test.c:59: warning: passing arg 1 of `aio_suspend' from incompatible pointer type
/tmp/cco8HlTC.o(.text+0x197): In function `main':
/home/zhoucl/sock_test/aio_read_test.c:50: undefined reference to `aio_read'
/tmp/cco8HlTC.o(.text+0x1da):/home/zhoucl/sock_test/aio_read_test.c:59: undefined reference to `aio_suspend'
/tmp/cco8HlTC.o(.text+0x20c):/home/zhoucl/sock_test/aio_read_test.c:66: undefined reference to `aio_return'
/tmp/cco8HlTC.o(.text+0x286):/home/zhoucl/sock_test/aio_read_test.c:79: undefined reference to `aio_read'
collect2: ld returned 1 exit status

|
加 -lrt

|
同上,需要加上rt库,这个库包含了一些realtime的函数。

    
 
 

您可能感兴趣的文章:

  • sh 里面ftp上传文件的代码。大侠帮忙看看下面的代码有什么问题
  • 想看看linux的内核源代码!从哪里开始!给点建议!!
  • shell 编程 从0到10求和 ,代码有错,请高手看看
  • 请推荐点Linux代码看看
  • 各位大侠,帮我看看为什么代码执行错误!!!
  • 帮我看看这段代码什么意思
  • 帮忙看看下边代码有什么问题
  • 工作需要看源代码,看看我多少天能完成任务……
  • 看看这个代码问题在哪?
  • 高手看看这段代码错在哪里
  • 大家看看以下一小段代码的可行性,参与有分
  • 各位师兄师姐再帮忙看看为什么下面的代码运行时出错?
  • 请帮忙看看下面这段代码在jsp中怎么实现阿?
  • 帮我看看这段代码,很奇怪啊
  • 帮看看一小段代码
  • 我是JAVA的一位初学者请各位师兄师姐帮忙看看下面的代码为什么会提示出错?
  • 帮看看我这断代码!有分奖励!
  • 一段简单的数据库调用代码!请大虾帮忙看看!!
  • 求助!!关于两行代码的理解问题!请大虾近来看看!!(在线等待)
  • 那位大侠帮忙看看下面这两句代码什么意思??
  • iptables规则问题,请大家帮忙看看怎么回事
  • 在编译内核时候出现问题,大家来帮忙看看是什么问题?怎么解决?
  • 关于全选的问题大家帮忙看看~
  • 大家去软件工程论坛里面去看看那,我发了700分的问题!!
  • redhat as3.0 java定时不能执行!请大家看看,问题在哪?
  • 虚心请教问题,帮我看看好吗?
  • 求人看看这个shell问题
  • 帮我看看我的sql语句写的有什么问题?
  • 关于arm交叉编译的问题,请帮忙看看问题出在什么地方?
  • 请帮我看看这个网络设置的问题
  • 大家帮我看看这个是什么问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 简单!看看这个方法!简单!看看这个方法!
  • linux高手看看
  • 好消息,近来看看......
  • 我想看看有关Linux和Unix的源码,有什么好的建议
  • 我初学JAVA,大家愿意交朋友的进来看看!留QQ的给分啊!
  • jsp论坛,大家快去看看,解决树形目录http://52jsp.126.com
  • 各位大侠,小侠,快过来看看。
  • 看过操作系统设计与实现的进来看看
  • 请进来看看!!
  • 帮我看看下面这条语句??
  • 建议去这里看看,有好多基本的重要知识! 绝对值得一看!
  • 大家帮我看看,我好把贴子结了,里面有100分。。。。。。
  • 到 http://www.xbit2008.com 看看技术文章把! 我写的或从网上摘的!
  • 我刚申请的域名rootsafe.com大家看看怎么样? up有分!
  • 帮我看看是不是被黑了?
  • 我的Solaris启动不了了,请帮忙看看
  • 能不能帮我看看!!!!!
  • 请问哪位高手可以帮我远程看看Fedora的安装
  • 大神们帮我看看这个死机的原因
  • 那位老师帮我看看怎么给加个注释#


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3