「C 端末とのやりとり」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==C 端末とのやりとり== [Programming C] *programの中で、userと対話する部分をredirectされないようにし、その他の入出力をredirectする…」) |
|||
| (同じ利用者による、間の3版が非表示) | |||
| 1行目: | 1行目: | ||
| − | ==C 端末とのやりとり== | + | ==[[C 端末とのやりとり]]== |
| − | [Programming C] | + | [[Programming C]] | |
| − | * | + | *programの中で、userと対話する部分をredirectされないようにし、[[その他]]の入出力をredirectするには、userと対話する部分を stdout や stderr から切り離す必要がある。 |
*具体的には、端末に対して直接読み取りや書き込みを行う。 | *具体的には、端末に対して直接読み取りや書き込みを行う。 | ||
| − | *Linux は multi user systemなので、通常は複数の端末が接続されている。 | + | *[[Linux]] は multi user systemなので、通常は複数の端末が接続されている。 |
| − | *Linux と UNIX では、つねに現在の端末を意味する /dev/tty deviceが用意されている。 | + | *[[Linux]] と UNIX では、つねに現在の端末を意味する /dev/tty deviceが用意されている。 |
| − | #include | + | #include <stdio.h> |
| − | #include | + | #include <stdlib.h> |
int main() | int main() | ||
2020年2月16日 (日) 04:23時点における最新版
C 端末とのやりとり
- programの中で、userと対話する部分をredirectされないようにし、その他の入出力をredirectするには、userと対話する部分を stdout や stderr から切り離す必要がある。
- 具体的には、端末に対して直接読み取りや書き込みを行う。
- Linux は multi user systemなので、通常は複数の端末が接続されている。
- Linux と UNIX では、つねに現在の端末を意味する /dev/tty deviceが用意されている。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *input;
FILE *output;
input = fopen("/dev/tty", "r");
output = fopen("/dev/tty", "w");
fprintf(output, "Please input some charactor. 'q':end.\n");
char c;
while((c = fgetc(input)) != 'q') {
printf("%c", c);
}
fprintf(output, "end.\n");
exit(0);
}
この本からの覚書。
© 2006 矢木浩人