題目:編寫兩個程序a和b,利用共享記憶體技術,a向共享記憶體寫字串,b將從共享記憶體中讀到的字串在螢幕上列印出來。
//建立共享記憶體區
#include #include
#include
#include
#include
#include
#include
int main(int arg,char *args)
printf(
"建立共享記憶體區成功,共享記憶體區段識別符號是%d\n
",shmid);
return0;
}
//向共享記憶體區寫入資料
#include #include
#include
#include
#include
#include
#include
int main(int arg, char *args)
int shmid = 0
;
int resid=0
; shmid = atoi(args[1
]);
//程序附加共享記憶體區
void * shmbuf =null;
shmbuf = shmat(shmid, 0, 0
);
if (shmbuf == -1
)
//資料寫入程序私有共享記憶體區
read(stdin_fileno, shmbuf, sizeof(char) * 1024
);
//關閉本程序私有共享記憶體區
resid=shmdt(shmbuf);
printf(
"shmdt()函式返回值是%d\n
",resid);
return0;
}
#include #include#include
//從共享記憶體區讀資料
#include #include
#include
#include
int main(int arg, char *args)
int shmid = 0
;
int resid = 0
; shmid = atoi(args[1
]);
//附加到共享記憶體區
void * shmbuf =null;
shmbuf = shmat(shmid, 0
, shm_rdonly);
if (shmbuf == -1
)
printf("%s
", shmbuf);
//關閉當前程序的共享記憶體區
resid =shmdt(shmbuf);
printf(
"shmdt()函式返回值是%d\n
", resid);
return0;
}
//關閉共享記憶體區
#include #include
#include
#include
#include
#include
#include
int main(int arg,char *args)
int resid=0
;
int shmid=0
; shmid=atoi(args[1
]); resid=shmctl(shmid,ipc_rmid,0
); printf(
"返回值是%d\n
Linux Linux程式練習四
編寫兩個不同的可執行程式,名稱分別為a和b,b為a的子程序。在a程式中呼叫open函式開啟a.txt檔案。在b程式不可以呼叫open或者fopen,只允許呼叫read函式來實現讀取a.txt檔案。a程式中可以使用 fork與execve函式建立子程序 a程式 fork共享檔案識別符號 include...
C C 專項練習 五
1.在過載運算子函式時,下面 運算子必須過載為類成員函式形式 a b c d 答案 d 解析 我也是不太懂。別人的優質解析 只能使用成員函式過載的運算子有 new delete 2.c 裡面如何宣告const void f void 函式為c程式中的庫函式。a static c b extern c...
基本演算法練習五
這道題看上去還是蠻簡單的,我想到的就是字串替換。由於它說了字串不超過1000,那麼我在程式裡就直接建乙個char陣列,這樣的話能夠很方便的修改對應的元素。如果是用字串指標的話,字串是存在常量區在。沒有陣列之間修改方便。如下 這道題也是基本的迴圈判斷,就是需要設定乙個p個籃筐陣列,用來儲存裡面是不是有...