真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于python管道函數(shù)實(shí)現(xiàn)的信息

python如何實(shí)現(xiàn)管道編程

管道調(diào)用子程序

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供武平網(wǎng)站建設(shè)、武平做網(wǎng)站、武平網(wǎng)站設(shè)計(jì)、武平網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、武平企業(yè)網(wǎng)站模板建站服務(wù),十載武平做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

我們想在程序中使用一個(gè)子程序,但是需要?jiǎng)討B(tài)的傳遞參數(shù)(這里說的動(dòng)態(tài),是指根據(jù)上次子程序輸入的結(jié)果來決定這次輸入什么),怎么辦呢,不用慌,有subprocess!

下文我先介紹一個(gè)例子代碼,以及他的輸出結(jié)果!

1.#!/usr/bin/python2.from subprocess import *3.# Subprocess management,可以做很多子進(jìn)程的文件,我們要引入這個(gè)文件4.p = Popen(["cat", "-n"], bufsize=1024,stdin=PIPE, 5.stdout=PIPE, close_fds=True)6.# 打開程序第一個(gè)參數(shù)是一個(gè)列表(程序名稱,參數(shù))7.# 第二個(gè)參數(shù)是緩沖區(qū)大小8.# stdin,stdout是設(shè)置是否打開這些管道,如果他的值是subprocess.PIPE的話,9.# 就會(huì)打開,同stdin一樣的還有stderr10.# close_fds設(shè)置為true(unix-only)所有的文件描述符除了(0,1,2)在子程序執(zhí)行前都會(huì)關(guān)閉11.(fin, fout) = (p.stdin, p.stdout)12.for i in range(10): # 你會(huì)懂的^_^ 13.fin.write("line" + str(i)) 14.fin.write('\n') 15.fin.flush() 16.print fout.readline()

他的輸出結(jié)果是:1.line02.line13.line24.line35.line46.line57.line68.line79.line810.line9

python編程中 os.mkfifo()和os.mknod()函數(shù)具體用法?最好有例子,里面參數(shù)具體怎么配置就能創(chuàng)建管道或節(jié)

mkfifo函數(shù)使用

[code]mkfifo(建立實(shí)名管道)

相關(guān)函數(shù)

pipe,popen,open,umask

表頭文件

#include

#include

定義函數(shù)

int mkfifo(const char * pathname,mode_t mode);

函數(shù)說明

mkfifo() 會(huì)依參數(shù)pathname建立特殊的FIFO文件,該文件必須不存在,而參數(shù)mode為該文件的權(quán)限(mode%~umask),因此 umask值也會(huì)影響到FIFO文件的權(quán)限。Mkfifo()建立的FIFO文件其他進(jìn)程都可以用讀寫一般文件的方式存取。當(dāng)使用open()來打開 FIFO文件時(shí),O_NONBLOCK旗標(biāo)會(huì)有影響

1、當(dāng)使用O_NONBLOCK 旗標(biāo)時(shí),打開FIFO 文件來讀取的操作會(huì)立刻返回,但是若還沒有其他進(jìn)程打開FIFO 文件來讀取,則寫入的操作會(huì)返回ENXIO 錯(cuò)誤代碼。

2、沒有使用O_NONBLOCK 旗標(biāo)時(shí),打開FIFO 來讀取的操作會(huì)等到其他進(jìn)程打開FIFO文件來寫入才正常返回。同樣地,打開FIFO文件來寫入的操作會(huì)等到其他進(jìn)程打開FIFO 文件來讀取后才正常返回。

返回值

若成功則返回0,否則返回-1,錯(cuò)誤原因存于errno中。

錯(cuò)誤代碼

EACCESS 參數(shù)pathname所指定的目錄路徑無可執(zhí)行的權(quán)限

EEXIST 參數(shù)pathname所指定的文件已存在。

ENAMETOOLONG 參數(shù)pathname的路徑名稱太長。

ENOENT 參數(shù)pathname包含的目錄不存在

ENOSPC 文件系統(tǒng)的剩余空間不足

ENOTDIR 參數(shù)pathname路徑中的目錄存在但卻非真正的目錄。

EROFS 參數(shù)pathname指定的文件存在于只讀文件系統(tǒng)內(nèi)。

示例1:

#include

#include

#include

#include

int main(void)

{

char buf[80];

int fd;

unlink( "zieckey_fifo" );

mkfifo( "zieckey_fifo", 0777 );

if ( fork() 0 )

{

char s[] = "Hello!\n";

fd = open( "zieckey_fifo", O_WRONLY );

write( fd, s, sizeof(s) );

//close( fd );

}

else

{

fd = open( "zieckey_fifo", O_RDONLY );

read( fd, buf, sizeof(buf) );

printf("The message from the pipe is:%s\n", buf );

//close( fd );

}

return 0;

}

執(zhí)行

hello!

示例2:

#include

#include

#include

#include

#include

int main( int argc, char **argv )

{

mode_t mode = 0666;

if ( argc !=2 )

{

printf( "Usage:[%s] fifo_filename\n", argv[0] );

return -1;

}

if (mkfifo( argv[1], mode)0 )

{

perror( "mkfifo");

return -1;

}

return 0;

} [/code]

python管道問題

管道有兩端,讀端和寫端。創(chuàng)建管道,然后從父進(jìn)程fork出子進(jìn)程,

父進(jìn)程和子進(jìn)程擁有共同的讀寫文件描述符,可以實(shí)現(xiàn)子進(jìn)程寫文件,父進(jìn)程讀文件的操作。


網(wǎng)站名稱:關(guān)于python管道函數(shù)實(shí)現(xiàn)的信息
網(wǎng)頁鏈接:http://weahome.cn/article/dodejhc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部