Linux下的C语言编程

来源:互联网 发布:VB中input函数怎么用 编辑:程序博客网 时间:2024/05/18 21:42
计算有名管道中读入及写入的字节数
#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <errno.h>#include <fcntl.h>#include <stdlib.h>#include <memory.h>#define FIFO_SEVER "/tmp/fifosever"int main(int argc,char **argv){    char r_buf[4096*2];    int fd;    int r_size;    int ret_size;    r_size = atoi(argv[1]);    printf("requore real read bytes %d\n",r_size);    memset(r_buf,0,sizeof(r_buf));    fd = open (FIFO_SEVER,O_RDONLY|O_NONBLOCK);    if(fd == -1)    {        printf("open %s for read error!\n");        exit(0);    }    while(1)    {        memset(r_buf,0,sizeof(r_buf));        ret_size = read(fd,r_buf,r_size);        if(ret_size == -1)        {            if(errno == EAGAIN)                printf("no data avalible\n");        }        printf("real read bytes %d\n",ret_size);        sleep(1);    }    pause();    unlink(FIFO_SEVER);    return 0;}


#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <errno.h>#include <fcntl.h>#include <memory.h>#include <stdlib.h>#define FIFO_SEVER "/tmp/fifosever"int main(int argc,char *argv[]){    int fd;    char w_buf[4096*2];    int real_wnum;        memset(w_buf,0,4096*2);    if((mkfifo(FIFO_SEVER,O_CREAT|O_EXCL) < 0) && (errno != EEXIST))    {        printf("cannt create fifosever!\n");        exit(0);    }    fd = open(FIFO_SEVER,O_WRONLY|O_NONBLOCK);    if(fd == -1)    {        if(errno == ENXIO)            printf("open error,no reading process\n");    }    scanf("%s",w_buf);    real_wnum = write(fd,w_buf,2048);    if(real_wnum == -1)    {        if(errno == EAGAIN)        {            printf("write to fifo error try later!\n");        }    }    else    {        printf("real write num is %d\n",real_wnum);    }    return 0;}



0 0