寫得非常艱難的多程序**,很多細節要注意,主要是自己的思路不夠清晰。實現的比較醜陋,各位見笑了。
#include#include#include static lpctstr mutex_read_name="read";//生產者互斥訪問緩衝區
static lpctstr mutex_write_name="write";//消費者互斥訪問緩衝區
static lpctstr mutex_print_name="print";//生產者消費者互斥列印避免混合輸出 如果緩衝區只有乙個mutex則可以不用此變數
static lpctstr event_continue_name="continue";//為了避免建立子程序順序造成的影響 子程序等待同一訊號一起開始
static lpctstr sem_full="full";
static lpctstr sem_empty="empty";
char a[3]=;
void signalstart()
closehandle(heventcontinue);
} bool createchild(char* process)
return(bcreateok);
}void produce()
char** ppdata=reinterpret_cast(pfile+4);
struct timeval t;
unsigned int seed;
int count=4;
waitforsingleobject(heventcontinue,infinite);
while(count--)
else
++(*ppdata);
releasemutex(hmutex_write);
releasesemaphore(hsem_full,1,null);//full訊號量+1
} unmapviewoffile(pfile);
closehandle(hmutex_write);
closehandle(hmutex_print);
closehandle(hsem_full);
closehandle(hsem_empty);
closehandle(heventcontinue);
}void consume()
char** ppdata=reinterpret_cast(pfile+12);
struct timeval t;
unsigned int seed;
int count=3;
waitforsingleobject(heventcontinue,infinite);
while(count--)
unmapviewoffile(pfile);
closehandle(hmutex_read);
closehandle(hmutex_print);
closehandle(hsem_full);
closehandle(hsem_empty);
closehandle(heventcontinue);
}void init_wait()
for(int i=0;i<4;i++)
releasemutex(mutex_print);
releasemutex(mutex_read);
releasemutex(mutex_write);
signalstart();
sleep(10000);
}int main(int argc,char* argv)
else if(argc>1&&strcmp(argv[1],"consumer")==0)
else
}
程序控制,自主實現shell
撤銷 ctrl command z 重做 ctrl command y 加粗 ctrl command b 斜體 ctrl command i 無序列表 ctrl command shift u 有序列表 ctrl command shift o 檢查列表 ctrl command shift c ...
程序及程序控制
學習程序之前,先了解一下程式 所謂程式就是指編譯好的二進位制檔案,在磁碟上,不占用系統資源 cpu 記憶體.而程序是與作業系統相關,是指在記憶體中執行起來的程式,占用一些系統資源,每當乙個程式執行,就相應產生乙個程序。程序的一些相關資訊被放在乙個叫程序控制塊的資料結構中,稱之為pcb。linux下的...
windows遠端控制
開篇 這裡使用的是windows自帶的遠端控制功能,同樣qq也有類似的遠端協助控制功能。與qq遠端協助相比,他不需要借助其他軟體就可以實現遠端控制,並且 被控制的電腦將會被鎖屏。當然也可以借助teamview等軟體來實現遠端控制,與windows自帶的控制功能相比,個人還是比較喜歡自帶的控制功能。準...