No.2
- 回答日時:
TCP のソケット(fd)に対して、以下の関数を呼べば OK です。
inlcude の指定と、エラー処理は適当に書いてください。このコードは Linux で動作確認済みです。void set_tcp_nodelay( int fd ) {
struct protoent *protoent;
int tmp;
if( ( protoent = getprotobyname ("tcp") ) == NULL ) return;
tmp = 1;
(void) setsockopt( fd,
protoent->p_proto,
TCP_NODELAY,
(char*) &tmp,
sizeof(int) );
}
No.1
- 回答日時:
tcpの例文は手間がかかるので、ttyの例を書きます。
-- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< --
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
int main(void)
{
char buf[BUFSIZ];
int fd, n;
fd = open("/dev/tty", O_NONBLOCK);
while (1) {
sleep(1);
n = read(fd, buf, BUFSIZ);
if (n < 0) {
if (errno == EAGAIN) {
fprintf(stderr, "No input\n");
continue;
}
else {
perror("I/O error");
return errno;
}
}
else {
buf[n] = 0;
printf("read = %s", buf);
}
}
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 8 iOS や Winows で使われているAccountの考え方がいまいち分かりません。これはLinu 2 2022/04/28 22:05
- 英語 to date 2 2023/05/23 23:22
- 英語 The more books you read, the more you’ll know. この文 2 2022/04/16 14:06
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- 高校 英作文 今度のテストの英作文で、英語が苦手なので手伝って欲しいです。 下のような文を書きたいのですが 1 2022/11/20 17:28
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- 英語 英文和訳の正解を教えてください。 1 2023/05/11 12:38
- TOEFL・TOEIC・英語検定 熟語で、may がmight になるのはどういう時ですか? 3 2022/06/20 14:41
- TOEFL・TOEIC・英語検定 enough to構文にforが入る場合 1 2022/10/02 17:02
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Linuxでのスレッド間メッセージについて
C言語・C++・C#
-
C言語での引数の省略方法
C言語・C++・C#
-
シリアル通信でのread関数の戻り値
C言語・C++・C#
-
-
4
【gcc・cygwin】multiple definitionエラーの解決法
C言語・C++・C#
-
5
シリアル通信 大きいサイズの受信処理
C言語・C++・C#
-
6
テキストカーソル位置の取得
C言語・C++・C#
-
7
ソケットのrecvの戻り値が0
C言語・C++・C#
-
8
ソケット通信内 read関数について
C言語・C++・C#
-
9
シリアルの送信完了を待つ方法
UNIX・Linux
-
10
自動パスワード入力でscpするスクリプトでエラー「Unterminated quoted string」
UNIX・Linux
-
11
C++にてtemplateで受け取った任意の型の変数が何型であるかを判定したい
C言語・C++・C#
-
12
RS232cを用いた送信プログラム
C言語・C++・C#
-
13
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
14
acceptをalarmでタイムアウトさせる処理がうまくいきません
C言語・C++・C#
-
15
コマンド(例えばls)の出力結果を文字列で取得するプログラムの作成方法
C言語・C++・C#
-
16
write関数でEAGAINのエラー発生 対策方法
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数桁10進数の*桁目だけを抽出...
-
「指定されたキャストは有効で...
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語での奇数の和
-
C言語での引数の省略方法
-
【C++】関数ポインタの使い方
-
足して100になるような乱数のア...
-
C言語
-
C言語 エラーの原因がわからな...
-
比較回数と交換回数表示について
-
数字列を3桁ごとにカンマで区切...
-
C言語のサイコロシミュレート
-
acceptをalarmでタイムアウトさ...
-
「{ } で囲むだけ」は正しい?
-
銀行のATMを想定したプログラム
-
未解決の外部シンボル _printf...
-
if と配列の組み合わせ
-
ラップ関数とはどんなものですか?
-
signal関数の使い方
-
インライン展開されているか確...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
「指定されたキャストは有効で...
-
C言語 配列と関数の練習問題
-
複数桁10進数の*桁目だけを抽出...
-
(int *)の意味
-
if と配列の組み合わせ
-
ラップ関数とはどんなものですか?
-
卒業研究でよく分からないとこ...
-
【C++】関数ポインタの使い方
-
c言語
-
足して100になるような乱数のア...
-
C言語初心者です、、、お助けく...
-
数字列を3桁ごとにカンマで区切...
-
C言語 エラーの原因がわからな...
-
実数の整数部,小数部の取得
-
課題でつまってます・・・
-
商と剰余を同時に求める(C言語)
-
C言語の配列をC++のvectorに高...
-
std::set<int> で、ある値が何...
おすすめ情報