SilentCの関数一覧表 (1) [ColdFire V2]
SilentCの関数一覧表を作成しました。
関数名 | 返り値 |
---|---|
char *MemoryAlloc(int size) | メモリ・ブロック先頭 |
int BufCopy(void *dest, void *src, int size) | 0 |
int MemClear(void *dest, int size) | 0 |
char CheckWriteComplete(char socket) | |
char WaitWriteComplete(char socket) | |
char CloseSocket(char socket) | |
char Connect(char socket, long ip, int port) | |
int MemoryFree(void *memory) | 0 |
long GetHostByName(char *name) | IPアドレス |
char *GetReceiveBuffer(char socket, char release) | バッファ先頭 |
int PrAdrs(long adrs) | 0 |
int PrChar(char c) | 0 |
int PrHex(long num, ..) | 0 |
int PrHexWord(int num, ..) | 0 |
int PrHexByte(char num, ..) | 0 |
int PrNum(long num, ..) | 0 |
int PrStr(char *str) | 文字列長 |
int Sleep(int time) | 0 |
char CreateSocket(char prot) | ソケット・ハンドル |
int StrLen(char *str) | 文字列長 |
char *StrCat(char *head, char*tail) | 結合された文字列 |
int StrCmp(char *str1, char *str2) |
|
char *StrCpy(char *dest, char *src) | dest |
char *StrChr(char *str, char scan) |
|
cahr *StrStr(char *str, char *scan) |
|
int SystemSleep(void) | 0 |
int Write(char socket, char *buf, int len) |
|
int Read(char socket, int timeout) |
|
int GetNetLine(char socket, char *buf, char size, char func) | |
| タイマ・ハンドル |
int GetTimerCount(char timer) |
|
- "PrXxxx"関数のいくつかは、可変引数に対応していて、それぞれの表示を空白デリミッタで区切って表示してくれます。 デリミッタは、ハードコーディングされているので、外部から変更することは出来ません。 う~ん、残念。
- "PrStr"関数は、返り値として表示した文字列の長さを返してくれます。 この機能は、私には、使途が思いつきません。
- ある情報から、"Read"関数は、8ビットの値を返しているように見えたのですが、16ビットの値を返していました。 このため、127バイトを超える長さのパケットも受信できます。
- "CreateTimer"関数は、引数として"0"を一つだけとる使い方ができます。 この場合、タイマの作成(確保?)のみ行います。
参考文献
Interface (インターフェース) 2008年 09月号 [雑誌]
- 作者:
- 出版社/メーカー: CQ出版
- 発売日: 2008/07/25
- メディア: 雑誌
> "Read"関数は、8ビットの値を返しているように見えます。
SilentCは便利なんだけれど、もう少し使う変数の型に配慮してもらえると、、、と思えます。前回のポート番号の様にね。
writeが送信するサイズも、戻り値もint型なので、使う人は混乱するのでは。
by hamayan (2008-09-22 09:07)
"Read"関数は、Interface誌によると"int"(16bit)を返すと書いてあるのですが、調べてみると(どこを?)"char"(8bit)を返しているように見えます。
SilentMoonは、16ビットの値を返しているので、SilentCでラッパー(wrapper)を作ったときに間違えちゃったのではないかと考えています。ぜひとも大きなパケットを送受信する検証プログラムを作成して確認してみなくては。
型について、 SilentCは、signed, unsinged を予約語としているのですが、使えるのかどうかは今のところ不明です。OS-2のフル・スペック版だと使えるようになるのかな?
by noritan (2008-09-22 09:30)
> ぜひとも大きなパケットを送受信する検証プログラムを作成して確認してみなくては。
受信で簡単なのは、httpクライアントを作成して、「GET /」で大き目のwebページにアクセスすれば良さそうですね。
by hamayan (2008-09-22 09:42)
追伸
> 調べてみると(どこを?)
そうか、これを調べていたのか(笑)。
by hamayan (2008-09-22 09:44)
> 大き目のwebページにアクセスすれば
現在、 PC-ColdFire をクロスケーブルでつないだ極めて閉じた世界で実験しているので、httpサーバをどうしようかと考えてしまいました。
Javaで、ベタなTCP/IP通信を書いてもいいんですよね。私は、どちらかというと、UNIX の C で listen-accept を使っていた世代なので。
by noritan (2008-09-22 12:08)
> 極めて閉じた世界
なるほど、しかし確かWindowsにもルーティング機能が有った様な気がします。
http://www.atmarkit.co.jp/fwin2k/win2ktips/450ipforw/ipforw.html
by hamayan (2008-09-22 12:33)
"Read"関数は、「ある所」を見ると8bitのデータを返しているように見えたのですが、実際に使ってみると、16bitのデータが返ってきていました。
検証プログラムは、のちほど。
by noritan (2008-09-23 10:51)