中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 文件I/O編程之: 實(shí)驗(yàn)內(nèi)容

        文件I/O編程之: 實(shí)驗(yàn)內(nèi)容

        作者: 時(shí)間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.antipu.com.cn/article/257134.htm

        (2)編寫代碼。

        編寫宿主機(jī)和目標(biāo)板上的代碼,在這些程序中用到的open_port()和set_com_config()函數(shù)請(qǐng)參照6.4節(jié)。這里只列出宿主機(jī)上的代碼。

        /*com_host.c*/

        #includestdio.h>

        #includestdlib.h>

        #includeunistd.h>

        #includestring.h>

        #includefcntl.h>

        #includesys/types.h>

        #includesys/stat.h>

        #includeerrno.h>

        #includeuart_api.h

        intmain(void)

        {

        intfds[SEL_FILE_NUM],recv_fd,maxfd;

        charbuff[BUFFER_SIZE];

        fd_setinset,tmp_inset;

        structtimevaltv;

        unsignedloop=1;

        intres,real_read,i;

        /*將從串口讀取的數(shù)據(jù)寫入這個(gè)文件中*/

        if((recv_fd=open(RECV_FILE_NAME,O_CREAT|O_WRONLY,0644))0)

        {

        perror(open);

        return1;

        }

        fds[0]=STDIN_FILENO;/*標(biāo)準(zhǔn)輸入*/

        if((fds[1]=open_port(HOST_COM_PORT))0)/*打開串口*/

        {

        perror(open_port);

        return1;

        }

        if(set_com_config(fds[1],115200,8,'N',1)0)/*配置串口*/

        {

        perror(set_com_config);

        return1;

        }

        FD_ZERO(inset);

        FD_SET(fds[0],inset);

        FD_SET(fds[1],inset);

        maxfd=(fds[0]>fds[1])?fds[0]:fds[1];

        tv.tv_sec=TIME_DELAY;

        tv.tv_usec=0;

        printf(Inputsomewords(enter'quit'toexit):n);

        while(loop(FD_ISSET(fds[0],inset)||FD_ISSET(fds[1],inset)))

        {

        tmp_inset=inset;

        res=select(maxfd+1,tmp_inset,NULL,NULL,tv);

        switch(res)

        {

        case-1:

        {

        perror(select);

        loop=0;

        }

        break;

        case0:/*Timeout*/

        {

        perror(selecttimeout);

        loop=0;

        }

        break;

        default:

        {

        for(i=0;iSEL_FILE_NUM;i++)

        {

        if(FD_ISSET(fds[i],tmp_inset))

        {

        memset(buff,0,BUFFER_SIZE);

        /*讀取標(biāo)準(zhǔn)輸入或者串口設(shè)備文件*/

        real_read=read(fds[i],buff,BUFFER_SIZE);

        if((real_read0)(errno!=EAGAIN))

        {

        loop=0;

        }

        elseif(!real_read)

        {

        close(fds[i]);

        FD_CLR(fds[i],inset);

        }

        else

        {

        buff[real_read]='