首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux ubuntu 进程间通信 有名管道 open异常:permission denied

2013-08-01 
linux ubuntu 进程间通信 有名管道 open错误:permission deniedint main(int argc,char** argv){int fdch

linux ubuntu 进程间通信 有名管道 open错误:permission denied
int main(int argc,char** argv)
{
int fd;
char w_buf[100];
int nwrite;

    /*创建有名管道*/
if((mkfifo(FIFO_SERVER,O_CREAT|O_EXCL|O_RDWR)<0)&&(errno!=EEXIST))
{
printf("cannot create fifoserver\n");
}

/*打开管道*/
fd=open(FIFO_SERVER,O_WRONLY |O_NONBLOCK,0);
if(fd==-1)
{
    perror("open");
exit(1);
}
//......linux ubuntu 进程间通信 有名管道 open异常:permission denied
[解决办法]
没有权限!!!
[解决办法]
fd=open(FIFO_SERVER,O_WRONLY);
改成这样
[解决办法]
mkfifo第二个参数是权限, 不是打开方式.
[解决办法]
楼上说的是

#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>

#define BUFSIZE 40

int main(int argc,char **argv)
{
    int fd,n;
    char buf[BUFSIZE];
    if(argc  != 2)
    {
        printf("Usage:%s [pathname]\n",argv[0]);
        exit(1);
    }

    if(mkfifo(argv[1],0644) < 0)
    {
        perror("mkfifo");
        exit(1);
    }

    if( (fd = open(argv[1],O_WRONLY)) < 0)
    {
        perror("open");
        exit(1);

    }
    n = sprintf(buf,"%s from %d","hello",getpid());
    write(fd,buf,n+1);

    close(fd);


    return 0;
}

热点排行