国产三级在线看完整版-内射白嫩大屁股在线播放91-欧美精品国产精品综合-国产精品视频网站一区-一二三四在线观看视频韩国-国产不卡国产不卡国产精品不卡-日本岛国一区二区三区四区-成年人免费在线看片网站-熟女少妇一区二区三区四区

儀器網(wǎng)(yiqi.com)歡迎您!

| 注冊2 登錄
網(wǎng)站首頁-資訊-話題-產(chǎn)品-評測-品牌庫-供應(yīng)商-展會-招標(biāo)-采購-知識-技術(shù)-社區(qū)-資料-方案-產(chǎn)品庫-視頻

問答社區(qū)

關(guān)于IPC$

哥身影如此落莫 2009-05-10 11:11:38 451  瀏覽
  • IPC$(Internet Process Connection)是共享"命名管道"的資源(大家都是這么說的),它是為了讓進(jìn)程間通信而開放的命名管道,可以通過驗證用戶名和密碼獲得相應(yīng)的權(quán)限,在遠(yuǎn)程管理計算機和查看計算機的共享資源時使用 想問下 什么叫 讓進(jìn)程間通信 舉個例子

參與評論

全部評論(1條)

  • 94481877 2009-05-11 00:00:00
    程間通信就是在不同進(jìn)程之間傳播或交換信息,那么不同進(jìn)程之間存在著什么雙方都可以訪問的介質(zhì)呢?進(jìn)程的用戶空間是互相獨立的,一般而言是不能互相訪問的,唯yi的例外是共享內(nèi)存區(qū)。但是,系統(tǒng)空間卻是“公共場所”,所以內(nèi)核顯然可以提供這樣的條件。除此以外,那就是雙方都可以訪問的外設(shè)了。在這個意義上,兩個進(jìn)程當(dāng)然也可以通過磁盤上的普通文件交換信息,或者通過“注冊表”或其它數(shù)據(jù)庫中的某些表項和記錄交換信息。廣義上這也是進(jìn)程間通信的手段,但是一般都不把這算作“進(jìn)程間通信”。因為那些通信手段的效率太低了,而人們對進(jìn)程間通信的要求是要有一定的實時性。 進(jìn)程間通信主要包括管道, 系統(tǒng)IPC(包括消息隊列,信號量,共享存儲), SOCKET. 管道包括三種:1)普通管道PIPE, 通常有種限制,一是半雙工,只能單向傳輸;二是只能在父子進(jìn)程間使用. 2)流管道s_pipe: 去除了diyi種限制,可以雙向傳輸. 3)命名管道:name_pipe, 去除了第二種限制,可以在許多并不相關(guān)的進(jìn)程之間進(jìn)行通訊. 系統(tǒng)IPC的三種方式類同,都是使用了內(nèi)核里的標(biāo)識符來識別. FAQ1: 管道與文件描述符,文件指針的關(guān)系? 答: 其實管道的使用方法與文件類似,都能使用read,write,open等普通IO函數(shù). 管道描述符來類似于文件描述符. 事實上, 管道使用的描述符, 文件指針和文件描述符Z終都會轉(zhuǎn)化成系統(tǒng)中SOCKET描述符. 都受到系統(tǒng)內(nèi)核中SOCKET描述符的限制. 本質(zhì)上LINUX內(nèi)核源碼中管道是通過空文件來實現(xiàn). FAQ2: 管道的使用方法? 答: 主要有下面幾種方法: 1)pipe, 創(chuàng)建一個管道,返回2個管道描述符.通常用于父子進(jìn)程之間通訊. 2)popen, pclose: 這種方式只返回一個管道描述符,常用于通信另一方是stdin or stdout; 3)mkpipe: 命名管道, 在許多進(jìn)程之間進(jìn)行交互. FAQ3: 管道與系統(tǒng)IPC之間的優(yōu)劣比較? 答: 管道: 優(yōu)點是所有的UNIX實現(xiàn)都支持, 并且在Z后一個訪問管道的進(jìn)程終止后,管道就被完全刪除;缺陷是管道只允許單向傳輸或者用于父子進(jìn)程之間. 系統(tǒng)IPC: 優(yōu)點是功能強大,能在毫不相關(guān)進(jìn)程之間進(jìn)行通訊; 缺陷是關(guān)鍵字KEY_T使用了內(nèi)核標(biāo)識,占用了內(nèi)核資源,而且只能被顯式刪除,而且不能使用SOCKET的一些機制,例如select,epoll等. FAQ4: WINDOS進(jìn)程間通信與LINUX進(jìn)程間通信的關(guān)系? 答: 事實上,WINDOS的進(jìn)程通信大部分移植于UNIX, WINDOS的剪貼板,文件映射等都可從UNIX進(jìn)程通信的共享存儲中找到影子. FAQ5: 進(jìn)程間通信與線程間通信之間的關(guān)系? 答: 因為WINDOWS運行的實體是線程, 狹義上的進(jìn)程間通信其實是指分屬于不同進(jìn)程的線程之間的通訊.而單個進(jìn)程之間的線程同步問題可歸并為一種特殊的進(jìn)程通信.它要用到內(nèi)核支持的系統(tǒng)調(diào)用來保持線程之間同步. 通常用到的一些線程同步方法包括:Event, Mutex, 信號量Semaphore, 臨界區(qū)資源等. Linux的進(jìn)程間通信(IPC,InterProcess Communication)通信方法有管道、消息隊列、信號量、共享內(nèi)存、套接口等。 管道分為有名管道和無名管道,無名管道只能用于親屬進(jìn)程之間的通信,而有名管道則可用于無親屬關(guān)系的進(jìn)程之間。 #define INPUT 0 #define OUTPUT 1 void main() { int file_descriptors[2]; /*定義子進(jìn)程號 */ pid_t pid; char buf[BUFFER_LEN]; int returned_count; /*創(chuàng)建無名管道*/ pipe(file_descriptors); /*創(chuàng)建子進(jìn)程*/ if ((pid = fork()) == - 1) { printf("Error in fork\n"); exit(1); } /*執(zhí)行子進(jìn)程*/ if (pid == 0) { printf("in the spawned (child) process...\n"); /*子進(jìn)程向父進(jìn)程寫數(shù)據(jù),關(guān)閉管道的讀端*/ close(file_descriptors[INPUT]); write(file_descriptors[OUTPUT], "test data", strlen("test data")); exit(0); } else { /*執(zhí)行父進(jìn)程*/ printf("in the spawning (parent) process...\n"); /*父進(jìn)程從管道讀取子進(jìn)程寫的數(shù)據(jù),關(guān)閉管道的寫端*/ close(file_descriptors[OUTPUT]); returned_count = read(file_descriptors[INPUT], buf, sizeof(buf)); printf("%d bytes of data received from spawned process: %s\n", returned_count, buf); } } 上述程序中,無名管道以int pipe(int filedis[2]);方式定義,參數(shù)filedis返回兩個文件描述符filedes[0]為讀而打開,filedes[1]為寫而打開,filedes[1]的輸出是filedes[0]的輸入; 在Linux系統(tǒng)下,有名管道可由兩種方式創(chuàng)建(假設(shè)創(chuàng)建一個名為“fifoexample”的有名管道): (1)mkfifo("fifoexample","rw"); (2)mknod fifoexample p mkfifo是一個函數(shù),mknod是一個系統(tǒng)調(diào)用,即我們可以在shell下輸出上述命令。 有名管道創(chuàng)建后,我們可以像讀寫文件一樣讀寫之: /* 進(jìn)程一:讀有名管道*/ void main() { FILE *in_file; int count = 1; char buf[BUFFER_LEN]; in_file = fopen("pipeexample", "r"); if (in_file == NULL) { printf("Error in fdopen.\n"); exit(1); } while ((count = fread(buf, 1, BUFFER_LEN, in_file)) > 0) printf("received from pipe: %s\n", buf); fclose(in_file); } /* 進(jìn)程二:寫有名管道*/ void main() { FILE *out_file; int count = 1; char buf[BUFFER_LEN]; out_file = fopen("pipeexample", "w"); if (out_file == NULL) { printf("Error opening pipe."); exit(1); } sprintf(buf, "this is test data for the named pipe example\n"); fwrite(buf, 1, BUFFER_LEN, out_file); fclose(out_file); } 消息隊列用于運行于同一臺機器上的進(jìn)程間通信,與管道相似; 共享內(nèi)存通常由一個進(jìn)程創(chuàng)建,其余進(jìn)程對這塊內(nèi)存區(qū)進(jìn)行讀寫。得到共享內(nèi)存有兩種方式:映射/dev/mem設(shè)備和內(nèi)存映像文件。前一種方式不給系統(tǒng)帶來額外的開銷,但在現(xiàn)實中并不常用,因為它控制存取的是實際的物理內(nèi)存;常用的方式是通過shmXXX函數(shù)族來實現(xiàn)共享內(nèi)存: int shmget(key_t key, int size, int flag); /* 獲得一個共享存儲標(biāo)識符 */ 該函數(shù)使得系統(tǒng)分配size大小的內(nèi)存用作共享內(nèi)存; void *shmat(int shmid, void *addr, int flag); /* 將共享內(nèi)存連接到自身地址空間中*/ shmid為shmget函數(shù)返回的共享存儲標(biāo)識符,addr和flag參數(shù)決定了以什么方式來確定連接的地址,函數(shù)的返回值即是該進(jìn)程數(shù)據(jù)段所連接的實際地址。此后,進(jìn)程可以對此地址進(jìn)行讀寫操作訪問共享內(nèi)存。 本質(zhì)上,信號量是一個計數(shù)器,它用來記錄對某個資源(如共享內(nèi)存)的存取狀況。一般說來,為了獲得共享資源,進(jìn)程需要執(zhí)行下列操作: (1)測試控制該資源的信號量; (2)若此信號量的值為正,則允許進(jìn)行使用該資源,進(jìn)程將進(jìn)號量減1; (3)若此信號量為0,則該資源目前不可用,進(jìn)程進(jìn)入睡眠狀態(tài),直至信號量值大于0,進(jìn)程被喚醒,轉(zhuǎn)入步驟(1); (4)當(dāng)進(jìn)程不再使用一個信號量控制的資源時,信號量值加1,如果此時有進(jìn)程正在睡眠等待此信號量,則喚醒此進(jìn)程。 下面是一個使用信號量的例子,該程序創(chuàng)建一個特定的IPC結(jié)構(gòu)的關(guān)鍵字和一個信號量,建立此信號量的索引,修改索引指向的信號量的值,Z后清除信號量: #include <stdio.h> #include <sys/types.h> #include <sys/sem.h> #include <sys/ipc.h> void main() { key_t unique_key; /* 定義一個IPC關(guān)鍵字*/ int id; struct sembuf lock_it; union semun options; int i; unique_key = ftok(".", 'a'); /* 生成關(guān)鍵字,字符'a'是一個隨機種子*/ /* 創(chuàng)建一個新的信號量集合*/ id = semget(unique_key, 1, IPC_CREAT | IPC_EXCL | 0666); printf("semaphore id=%d\n", id); options.val = 1; /*設(shè)置變量值*/ semctl(id, 0, SETVAL, options); /*設(shè)置索引0的信號量*/ /*打印出信號量的值*/ i = semctl(id, 0, GETVAL, 0); printf("value of semaphore at index 0 is %d\n", i); /*下面重新設(shè)置信號量*/ lock_it.sem_num = 0; /*設(shè)置哪個信號量*/ lock_it.sem_op = - 1; /*定義操作*/ lock_it.sem_flg = IPC_NOWAIT; /*操作方式*/ if (semop(id, &lock_it, 1) == - 1) { printf("can not lock semaphore.\n"); exit(1); } i = semctl(id, 0, GETVAL, 0); printf("value of semaphore at index 0 is %d\n", i); /*清除信號量*/ semctl(id, 0, IPC_RMID, 0); } 套接字通信并不為Linux所專有,在所有提供了TCP/IP協(xié)議棧的操作系統(tǒng)中幾乎都提供了socket,而所有這樣操作系統(tǒng),對套接字的編程方法幾乎是完全一樣的。 進(jìn)程間通信各種方式效率比較 類型 無連接 可靠 流控制 記錄 消息類型優(yōu)先級

    贊(3)

    回復(fù)(0)

    評論

熱門問答

關(guān)于IPC$
IPC$(Internet Process Connection)是共享"命名管道"的資源(大家都是這么說的),它是為了讓進(jìn)程間通信而開放的命名管道,可以通過驗證用戶名和密碼獲得相應(yīng)的權(quán)限,在遠(yuǎn)程管理計算機和查看計算機的共享資源時使用 想問下 什么叫 讓進(jìn)程間通信 舉個例子
2009-05-10 11:11:38 451 1
關(guān)于ipc$客戶端連接
請高手支招 我單位有一臺電腦共享了打印機,操作系統(tǒng)為windowsXP。Z近發(fā)現(xiàn)個問題,大家連此電腦時總提示“連接該計算機已達(dá)到Z大值”。打開計算機管理/共享文件夾/共享 發(fā)現(xiàn)IPC$ 的#客戶端連接數(shù)據(jù)達(dá)到數(shù)百;但是 /會話 中顯示“此視圖中沒有可顯示的項目... 請高手支招 我單位有一臺電腦共享了打印機,操作系統(tǒng)為windowsXP。Z近發(fā)現(xiàn)個問題,大家連此電腦時總提示“連接該計算機已達(dá)到Z大值”。打開計算機管理/共享文件夾/共享 發(fā)現(xiàn)IPC$ 的#客戶端連接數(shù)據(jù)達(dá)到數(shù)百;但是 /會話 中顯示“此視圖中沒有可顯示的項目”; /打開文件 中顯示很多項目 打開文件都是“\PIPE\browser”,打開模式都是“寫入+讀取”。 處理方法: 1.右擊 會話 ,選擇“中斷全部的會話連接”,系統(tǒng)會提示“在嘗試關(guān)閉一個來自windows客戶端***.***.***.***的會話時發(fā)生如下錯誤 錯誤2312 帶此計算機名的會話不存在” 。該提示會出現(xiàn)很多次,每次出現(xiàn)的IP地址都不一樣,且都是不會人為訪問該計算機的城域網(wǎng)其它網(wǎng)段IP。 2.經(jīng)過上述處理后,IPC$的#客戶端連接數(shù)會清零,但是很快又會增加。 3.修改注冊表項HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa 將restrictanonymous的值改為1 4.系統(tǒng)補丁已經(jīng)打到Z新 5.殺毒軟件掃描沒有病毒(不敢說沒有病毒,但是單位其它電腦狀況還不如這臺) 6.用360和windows清理助手掃描木馬并清除。 處理完畢后,情況并沒有得到太大的改善。 請高手幫忙研究研究。 展開
2009-08-04 18:13:40 530 1
關(guān)于ipc的同步
我在我妹家里下載了幾首歌想傳到ipc上,但因為不是我家的電腦,所以我發(fā)現(xiàn)想要同步歌曲的話,只能同步新下載的歌曲,以前在家下載的歌曲同步后要不見的,有不有好的辦法,在其他地方下載的歌曲換臺電腦同步歌曲后,也不會丟掉?是我不會還是沒有這個功能,如果... 我在我妹家里下載了幾首歌想傳到ipc上,但因為不是我家的電腦,所以我發(fā)現(xiàn)想要同步歌曲的話,只能同步新下載的歌曲,以前在家下載的歌曲同步后要不見的,有不有好的辦法,在其他地方下載的歌曲換臺電腦同步歌曲后,也不會丟掉?是我不會還是沒有這個功能,如果有這個功能請教下步驟 展開
2014-05-03 13:59:47 548 1
關(guān)于XP系統(tǒng)使用IPC$服務(wù)?
WIN2000可以使用\d$或\c$來實現(xiàn)對客服端電腦的訪問,但在XP系統(tǒng)下就不行,請問如何操作?謝謝
2009-08-23 09:23:26 448 3
關(guān)于IPC和AIR的問題
新入IPC,AIR用過一陣,但時間也不長,聽鋼琴和弦樂類的純音還不錯,不過聽一些清淡的流行女聲感覺也不是那么的清澈,搖滾就不說了亂成一團(tuán),請問這是搭配問題還是耳機沒煲開的原因,另外AIR不用耳機棉會不會好一點,分不多,請大神們指點~
2013-04-20 03:24:00 434 2
關(guān)于局域網(wǎng)IPC入侵XP方法?
我是菜鳥,大家?guī)臀谊P(guān)于局域網(wǎng)IPC入侵XP方法? 重謝!不要復(fù)制!
2008-11-15 01:30:22 624 3
關(guān)于監(jiān)控錄像顯示IpC是什么意思
 
2018-12-06 01:14:50 324 0
關(guān)于ipc幾代之間的區(qū)別。。如題 謝謝了
耳機用的K450,JBL Radial音箱,現(xiàn)在有一個ipad,有入一個IPC的必要嗎? ipad和ipc有多大區(qū)別? 還有就是 ipc三代的差別,主要指音質(zhì)上的區(qū)別,求高手指點。。。
2014-04-27 05:20:32 463 2
ipc$入侵,關(guān)于TELNET服務(wù)如果沒有開啟能不能入侵
我用兩臺電腦做實驗,用ipc$入侵,可是默認(rèn)目錄明明是共享的,就是映謝不了``經(jīng)常提示系統(tǒng)發(fā)生錯誤67,找不到網(wǎng)絡(luò)名,這是為什么了,
2016-08-08 00:21:15 384 1
關(guān)于IPC$的問題連接時顯示系統(tǒng)錯誤67是為什么?
 
2006-02-06 17:54:36 372 1
IPC是什么?
不知道IPC是什么,希望能有詳細(xì)解答。
2013-08-02 16:52:49 534 2
IPC$是什么?
 
2009-12-09 01:04:28 354 2
IPC是什么?
 
2018-11-11 05:37:42 321 0
IPC是什么?
 
2013-07-24 17:17:39 368 1
ipc$問題
我用 net use \\24.**.***.**\ipc$ * /user:"administrator" 命令試圖建立連接,出現(xiàn)53錯誤。路徑未找到。 雙方均為 Windows XP 系統(tǒng) 雙方均打開 IPC 共享 雙方都關(guān)閉了防火墻 用戶名密碼都是正確的 我Ping對方為 43ms 延時,網(wǎng)絡(luò)十分暢通。 請高手... 我用 net use \\24.**.***.**\ipc$ * /user:"administrator" 命令試圖建立連接,出現(xiàn)53錯誤。路徑未找到。 雙方均為 Windows XP 系統(tǒng) 雙方均打開 IPC 共享 雙方都關(guān)閉了防火墻 用戶名密碼都是正確的 我Ping對方為 43ms 延時,網(wǎng)絡(luò)十分暢通。 請高手解難。 展開
2006-08-10 20:11:50 431 6
ipc$什么意思
 
2007-10-22 14:35:02 408 2
ipc遠(yuǎn)程控制
我知道一臺Windows Server 2003 的用戶名密碼,IPC$、遠(yuǎn)程注冊列表以打開如何控制計算機?(如何遠(yuǎn)程桌面、打開Routing and Remote Access服務(wù)) net time 無法獲得時間Task Scheduler 好像被關(guān)閉遠(yuǎn)程桌面已關(guān)閉
2013-12-22 00:22:28 521 4
IPC證與IPC備的區(qū)別
誰制定IPC證與IPC備的區(qū)別,我查新浪,是IPC證備案的,但很多05年和06年新申請的IPC證和IPC備的號是不同的有什么區(qū)別嗎?
2017-12-14 23:42:19 646 1

4月突出貢獻(xiàn)榜

推薦主頁

最新話題