クリップボードカット&ペースト クリップボードカット&ペースト クリップボードカット&ペースト クリップボードカット&ペーストの操作 mcut - クリップボードカット mpaste - クリップボードペースト medit - クリップボード編集 medit - クリップボード編集の操作 クリップボードカット&ペースト クリップボードカット&ペースト mcut mpaste 標準入力から入 力されたデータ を共有メモリに 入れる 共有メモリか らデータを取 出しプリントす る write read print 共有 メモリ クリップボードカット&ペースト クリップボードカット&ペーストの操作 クリップボードカット&ペースト mcut - クリップボードカット mcut.c 4096バイト、読書き可能 int main() { な共有メモリを作成 char *head; char in_data[4096], *in_ptr; char *pos; ファイル名と1文字 int i, in_tmp, shmid; からキーを作る key_t shmkey; shmkey = ftok("mcut",'a'); shmid = shmget(shmkey,sizeof(in_data),IPC_CREAT|0666); head = pos = shmat(shmid,0,0); in_ptr = in_data; mcut mpaste write 共有メモリの先頭 for (i=0; i<sizeof(in_data)-1; i++) { アドレスを得る if ((in_tmp=getchar()) == EOF) { break; } 標準入力からの文 *in_ptr = In_tmp; 字をin_dataへ in_ptr++; } 共有メモリ *in_ptr = (char)NULL; に書込む in_ptr = in_data; strncpy(pos,in_ptr,sizeof(in_data)); shmdt(head); 共有メモリの return EXIT_SUCCESS; } 利用を止める read print 共有 メモリ クリップボードカット&ペースト mpaste - クリップボードペースト mpaste.c mcut #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> #include <stdio.h> #include <stdlib.h> #include <string.h> ファイル名と1文字 int main() { からキーを作る char *head; char out_data[4096], *out_ptr; char *pos; int shmid; key_t shmkey; shmkey = ftok("mcut",'a'); shmid = shmget(shmkey,sizeof(out_data),IPC_CREAT|0666); head = pos = shmat(shmid,0,0); 共有メモリの先頭 out_ptr = out_data; アドレスを得る strncpy(out_ptr,pos,sizeof(out_data)); printf("%s",out_data); fflush(stdout); 共有メモリか return EXIT_SUCCESS; } ら読み出す mpaste write read print 共有 メモリ クリップボードカット&ペースト medit - クリップボード編集 mcutによって共有メモリに書き込まれたデータを編集(例えば、全て大文字 に変換(関数toupper()を使用)する)プログラム(medit.c)を作成する。 共有メモリに書き込まれたデータが、実際に、全て大文字になっていること をmpasteで確認する。 mcut medit mpaste write read toupper 共有 メモリ write read print クリップボードカット&ペースト medit - クリップボード編集の操作 $w 7:43pm up 7:51, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT oida pts/0 pupa 12:34pm 10:53 0.05s 0.05s -bash oida pts/1 pupa 7:25pm 0.00s 0.08s 0.01s w $ gcc -o hw6 hw6.c $ w | ./mcut $ ./medit $ ./mpaste 7:43PM UP 7:52, 2 USERS, LOAD AVERAGE: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT OIDA PTS/0 PUPA 12:34PM 10:32 0.05S 0.05S -BASH OIDA PTS/1 PUPA 7:25PM 0.00S 0.07S 0.00S W $ 大文字に なっている
© Copyright 2024 ExpyDoc