
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「指定されたキャストは有効で...
-
return 1L
-
C言語での引数の省略方法
-
C言語で分からないところがあり...
-
#define _CRT_SECURE_NO_WARNIN...
-
実数の整数部,小数部の取得
-
C言語で三目並べをするプログラ...
-
int16_t の _t は何?
-
systemの戻り値を取得する方法
-
if と配列の組み合わせ
-
部分行列の抜き出し(C言語)
-
acceptをalarmでタイムアウトさ...
-
C言語 等差数列問題
-
入力を待たずにstdinの監視をし...
-
C言語の関数で戻り値を返す必要...
-
反復処理
-
system関数がうまくいかない
-
異なる文字列のマッチングを、D...
-
フィボナッチ数列 プログラミ...
-
【C++】関数ポインタの使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#define _CRT_SECURE_NO_WARNIN...
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
【C++】関数ポインタの使い方
-
C言語 エラーの原因がわからな...
-
複数桁10進数の*桁目だけを抽出...
-
return 1L
-
if と配列の組み合わせ
-
ラップ関数とはどんなものですか?
-
式は定数値が必要です」という...
-
数字列を3桁ごとにカンマで区切...
-
実数の整数部,小数部の取得
-
C言語でDxlibを使って3x3の奇数...
-
プログラムについて(UNIX)
-
acceptをalarmでタイムアウトさ...
-
C言語の課題です
-
エラー 添字が付けられた値が、...
-
CStringの配列要素を関数で受け...
-
最早開始時間と最遅完了時刻を...
-
入力された数字を大きい順に並...
おすすめ情報