K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[2063] Re:info.servlet.serviceについて
投稿者:くまきち
2017/12/19 21:37:28

なるほど、了解です!ありがとうございます。 ですが、もう少し分からないことがあります。 マルチスレッドで動くとなると、クラスがRunnableをimplementsして...のような ルールが必要なのかと思っていたのですが、HttpServletは、そのようになっていません。 HenacatでRunnableをimplementsしているのはServerThreadだけだと思いますが、 もしかしてマルチスレッドの各スレッドから呼び出されるクラスは、ルールの適用無しでも (結果として)マルチスレッドで動くという事なのでしょうか? 入門書を読め!という話なのかも知れませんが、どうぞ宜しくお願いします。 >>分からないのは「info.servlet」がnullでなければ、同じインスタンスが >>使いまわされるのに、並行して複数個所から使いまわされていいんだっけ? >>ということです。 > >p.92の補足にも書きましたが、サーブレットのインスタンスはひとつだけ生成され、 >すべてのリクエストで共有されます。 >よって、インスタンスフィールドを使えば、複数のスレッド間で競合が起きる >可能性がありますし、(補足にも書いたように)リクエスト単位やユーザ単位で >持つべき情報をサーブレットのインスタンスフィールドで保持してはいけません。 > >ただし、ローカル変数はスレッドごとに存在するので、ローカル変数(メソッドの >引数含む)だけを使っている限り、同じインスタンスのメソッドを複数のスレッドで >呼び出すことは問題ありません。 >
[この投稿を含むスレッドを表示] [この投稿を削除]
[2062] 【C言語ポインタ完全制覇】ポインタはどれだけ進む?
投稿者:knwifuru
2017/12/19 08:28:55

2-3-2ポインタ型派生で(第1版p151、第2版p172)、「くどいようですが繰り返しておきます。ポインタに対して加算を行うと、そのポインタの指す型のサイズだけ、ポインタが進むのでした。」とありますが、ポインタの指す型のサイズだけ進むのは、(通常のポインタの実装では)【アドレス】であって、ポインタが進む大きさは、ポインタに加算した量だけ、ではないでしょうか?
[この投稿を含むスレッドを表示] [この投稿を削除]
[2061] 【C言語ポインタ完全制覇】バイトオーダー、向き?
投稿者:knwifuru
2017/12/19 08:23:16

第1版p135, 第2版p156の、byteorder.cの実行直後の文、『私の環境では「0x12345678」という値は、メモリ上に、逆向きに配置されているようですね。』とあるのですが、何とは「逆向き」に、なのかがわかりません。何と逆向きなのでしょうか? (ぱ)さんの環境(little endian)で、78->56->34->12と表示されている、というのは、下の位から上の位にメモリアドレスが増えていっているので、僕には、逆ではなく【順に】に思えるのです。 数字の左から右(読む向き)とは【逆】という事でしょうか? 確かに、それとは逆ではありますが… しかし、もともと、endianというのは、「卵の尖った側(小さい側)から(先に)食べるか、丸い側(大きい側)から食べるか」=「bit/byte列のlower bits側が先に(lower addressに)置かれるか、higher bitsが先に置かれるか」という事のようなので、数字を印刷・表示した時・読んだ時に先に・早く出てくるかどうか?で議論をすると、混乱すると思うのですが、いかがでしょうか?
[この投稿を含むスレッドを表示] [この投稿を削除]
[2060] Re:info.servlet.serviceについて
投稿者:(ぱ)こと管理人
2017/12/18 23:55:58

>分からないのは「info.servlet」がnullでなければ、同じインスタンスが >使いまわされるのに、並行して複数個所から使いまわされていいんだっけ? >ということです。 p.92の補足にも書きましたが、サーブレットのインスタンスはひとつだけ生成され、 すべてのリクエストで共有されます。 よって、インスタンスフィールドを使えば、複数のスレッド間で競合が起きる 可能性がありますし、(補足にも書いたように)リクエスト単位やユーザ単位で 持つべき情報をサーブレットのインスタンスフィールドで保持してはいけません。 ただし、ローカル変数はスレッドごとに存在するので、ローカル変数(メソッドの 引数含む)だけを使っている限り、同じインスタンスのメソッドを複数のスレッドで 呼び出すことは問題ありません。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2059] info.servlet.serviceについて
投稿者:くまきち
2017/12/18 22:54:13

いつもお世話になっております。おかげさまで安心して読み進めることが出来ます。 『基礎からのWebアプリケーション開発入門』のP.116のリスト3-17の76行目に info.servlet.service(req,resp); という行があります。 この「info.servlet」はnullであれば53行目でインスタンスを作っています。 また「info.servlet」はWebapplicationのメンバーなので、当然、複数箇所から並行して呼ばれることがあるのではないかと思います。 分からないのは「info.servlet」がnullでなければ、同じインスタンスが使いまわされるのに、並行して複数個所から使いまわされていいんだっけ?ということです。 これは、マルチスレッド的な何か仕掛けがあって、このような作りになっているのでしょうか? 初心者で分からないことが多く、ご迷惑をおかけします。もしかして、ものすごく曖昧な質問なのかも知れませんが、よろしければお教えください。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2058] Re:C言語ポインタ完全制覇 第1版 4-2-1 可変長配列の配列についての質問
投稿者:884
2017/12/18 14:23:31

ご回答ありがとうございました。理解できました。 こんなにレスポンスが早く、直接、著者より回答がいただけるのは、非常にありがたいです。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2057] Re:ポインタ制覇誤植2-3-2冒頭(still in the 2nd ed.)
投稿者:knwifuru
2017/12/17 22:22:15

>>「C言語ポインタ制覇」2-3-2冒頭、『式の中では「関数へのポインタ」に読み替えられる』は >>『読み替えられる』ではないでしょうか? > >間違っている方の記述は「読み替えらえる」ですね。正誤表に入れさせていただきました。 指摘も間違えていて恥かきました(^^; すみません。 また気づいた点がありましたらお知らせいたします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2056] Re:セッションCookie
投稿者:くまきち
2017/12/17 22:05:21

自己解決しました。 P.166の最終段落「さて、」以降に記載されている部分のことですね。 お騒がせしました。 >『基礎からのWebアプリケーション開発入門』のP.171のリスト5-4の後に、 >「セッションCookieにPath属性が...」との記載があります。 >これは、「CookieにPath属性が...」と見ればいいでしょうか? >それとも、どこかで「セッションCookie」が定義されていたでしょうか? > >誤植のような気もするし、私が失念しただけのような気もするし、曖昧で申し訳ないですが、 >質問させて頂きました。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2055] Re:セッションCookie
投稿者:(ぱ)こと管理人
2017/12/17 21:59:06

>『基礎からのWebアプリケーション開発入門』のP.171のリスト5-4の後に、 >「セッションCookieにPath属性が...」との記載があります。 ちょっと遠くてわかりにくかったかもしれませんが、 ここの「セッションCookieにPath 属性が付いていたことからもわかるように、」 という文章は、p.167冒頭のTomcatのセッションCookieにPath属性が付いていたことを 意味しています。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2054] Re:ポインタ制覇誤植2-3-2冒頭(still in the 2nd ed.)
投稿者:(ぱ)こと管理人
2017/12/17 15:34:04

>「C言語ポインタ制覇」2-3-2冒頭、『式の中では「関数へのポインタ」に読み替えられる』は >『読み替えられる』ではないでしょうか? 間違っている方の記述は「読み替えらえる」ですね。正誤表に入れさせていただきました。 >第一版で前々から気付いていたのですが、お知らせせずに置いたところ、先日出版された >ことに気づいて慌てて?購入した第二版でもそのままになっているようです。 第1版の方の正誤表にも後ほど記載いたします(第1版では、第2版を書いているうちに 気付いたり査読者にご指摘いただいた箇所がミスがやはり何か所かありまして、 そのうち正誤表に載せようと思ったまま延び延びになってしまっておりました)。 >こういう連絡は、こちらにするので良いのでしょうか? 「密かに別のところに >知らせてくれ」ということであれば、そちらに連絡差し上げますが… こちらでお願いします。また何かありましたらよろしくお願いいたします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2053] ポインタ制覇誤植2-3-2冒頭(still in the 2nd ed.)
投稿者:knwifuru
2017/12/17 11:58:12

「C言語ポインタ制覇」2-3-2冒頭、『式の中では「関数へのポインタ」に読み替えられる』は『読み替えられる』ではないでしょうか? 第一版で前々から気付いていたのですが、お知らせせずに置いたところ、先日出版されたことに気づいて慌てて?購入した第二版でもそのままになっているようです。 こういう連絡は、こちらにするので良いのでしょうか? 「密かに別のところに知らせてくれ」ということであれば、そちらに連絡差し上げますが…
[この投稿を含むスレッドを表示] [この投稿を削除]
[2052] セッションCookie
投稿者:くまきち
2017/12/16 16:32:15

『基礎からのWebアプリケーション開発入門』のP.171のリスト5-4の後に、 「セッションCookieにPath属性が...」との記載があります。 これは、「CookieにPath属性が...」と見ればいいでしょうか? それとも、どこかで「セッションCookie」が定義されていたでしょうか? 誤植のような気もするし、私が失念しただけのような気もするし、曖昧で申し訳ないですが、 質問させて頂きました。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2051] Re:synchronizedについて
投稿者:(ぱ)こと管理人
2017/12/16 00:12:38

>これはラストアクセス時刻を設定するだけのメソッドだと思いますが、 >なぜsynchronizedにする必要があるのでしょうか? ここで設定するthis.lastAccessedTimeはlong型ですが、 Javaではlong型については、代入自体、atomicであることが保証されていません。 https://www.jpcert.or.jp/java-rules/vna05-j.html (intとかは良さそうなのですが、あまりそれに依存したコードは私は 書きたくないところです) >正直、多少ズレても誰にも迷惑をかけないように思ったので質問してみました。 atomicでないということは、時刻が多少ずれるということだけでなく、 「結果がどうなるかわからない」ということだと思います。 (上記ページで引用されているJLSの記述を読むと、32ビット単位で 異なる値が混じる、ということしか起こらないようにも読めますが……)
[この投稿を含むスレッドを表示] [この投稿を削除]
[2050] synchronizedについて
投稿者:くまきち
2017/12/14 23:47:43

『基礎からのWebアプリケーション開発入門』のP.168のリスト5-3の40行目に synchronized void access() という行があります。 これはラストアクセス時刻を設定するだけのメソッドだと思いますが、なぜsynchronizedにする必要があるのでしょうか? 正直、多少ズレても誰にも迷惑をかけないように思ったので質問してみました。 よろしかったら回答頂けると、ありがたいです。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2049] Re:『センス・オブ・プログラミング!』の正誤について
投稿者:藤四郎
2017/12/13 19:42:15

お手数おかけしました。ご対応ありがとうございました。 これでこの本も一読者として安心して意味内容に集中して読み返すことができます。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2048] Re:C言語ポインタ完全制覇 第1版 4-2-1 可変長配列の配列についての質問
投稿者:(ぱ)こと管理人
2017/12/13 01:51:10

>標準入出力は、テキストファイルと同じように、ファイルポインタで指定して、 >ファイルのように扱ことができる。という理解でよいでしょうか。 そういうことですね。 キーボードのような入力デバイスも、画面のような出力デバイスも、 なんでもファイルとして扱えるようにしてしまえ、というのは もともとUNIXのアイディアで、たとえばWikipediaでUNIXを引くと 「概説」の項に以下のように書いてあります。 >各種の周辺装置やある種のプロセス間通信 (IPC) をファイルとして扱う事 ここで、「各種の周辺装置」はキーボードを含みます。 このUNIXのアイディアをMS-DOSが模倣し、Windowsでもそのまま使えるように なっているわけです。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2047] Re:addCookieについて
投稿者:(ぱ)こと管理人
2017/12/13 01:47:40

>name=COUNTERのCookieが増えないように、どこで制御しているのでしょうか? >単純に見落としているだけかも知れないのですが、宜しかったら教えて頂きたいです! 結論から言えば、制御していません。Tomcatも同じです。 https://twitter.com/kmaebashi/status/549803263734718464 このTweetにも書いたように、何の役に立つのかはさっぱりわかりませんが、 Tomcatもそうなっているならまあいいかとそうしています。 もちろん、HttpServletResponseはリクエストの度に作り直されますし、 CookieTest.javaは1回のリクエストで1回しかaddCookie()を呼んでいないので、 同じ名前のCookieが増えることはありません。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2046] Re:flush()について
投稿者:(ぱ)こと管理人
2017/12/13 01:39:52

>すごく基本的な質問かもしれないですが、たとえば「メモリ上にだけ持っていて >ディスクに書き出していないデータがあるかもしれないのでflush」という >イメージは分かるのですが、このサンプルの場合はメモリ上のデータの >やり取りだけなので、flushを何のために行っているのか分かりませんでした。 このサンプルの場合はメモリ上のデータのやり取りだけですが、 それは、Henacatが手抜きのためにレスポンスボディをいったんすべて メモリに乗せているからであり、これでは、巨大なレスポンスを返す際には メモリが無駄になります。場合によっては、レスポンスデータを作りながら どんどんクライアントに返してしまいたいケースもあるでしょう。 その場合、クライアントへのデータの返却を始めてしまったら、 もうレスポンスヘッダの変更はできませんから、途中でエラーが起きても ステータスとして500とかを返すことはできず、200 OKを返すことになって しまいますが、それでもいいからクライアントへのデータ返却を始めてしまいたい、 というニーズはあり得ます。それに対応するために、サーブレットAPIでは 「コミット」という概念を導入しています(p.119)。 http://mergedoc.osdn.jp/tomcat-servletapi-5-ja/javax/servlet/ServletResponse.html#getWriter() その場合、HttpServletResponseのgetWriter()で得られるPrintWriterは、 バッファリングする方がよいでしょう。相手はネットワークだからです。 このように、このPrintWriterはバッファリングする(ようになる)可能性もあるため、 ここではflush()しています。 いずれにしても、バッファリングするしないはPrintWriterの実装詳細に 属することでしょうから、flush()する方が堅実なコーディングではないかと 思います。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2045] Re:『センス・オブ・プログラミング!』の正誤について
投稿者:(ぱ)こと管理人
2017/12/13 00:19:10

>さて、またご面倒をおかけしますが、以下についてそちらの正誤表への追加を >ご検討お願いいたします。年末のお忙しい時期におそれいりますが、またご都 >合のよろしいときにでもご対応いただければ幸いです。 またまたたくさんご指摘ありがとうございます。 ポカが多く申し訳ありません。 遅くなりましたが、対応させていただきました。 >後入れ先出し Last In First Out >先入れ後出し First In Last Out これはまあ、日本語と英語で順序を合わせなければならないというわけでも ないでしょうから、このままとさせてください。 >> 27人集れば、誕生日が衝突する確率は50%を超えます。 私は、どういうわけか27人だと思い込んでいたようですが、 どこからその数字をおぼえたのか、まったく思い出せません… >p.192 l.2 >> O(1/2N^2) > >これは誤りとまではいえないとは思いますが、一応、より細かいことをいえば >(N-1) + (N-2) + ... + 1 = N(N-1)/2 >かと。 (つまり、無視するのは定数の係数だけでなく第二項以降も。) 正しくは1/2 N^2(つまり(N^2)/2)ではなくN(N-1)/2ですが、 さすがにN^2とN(N-1)は丸めてしまって問題ない差だと思います。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2044] addCookieについて
投稿者:くまきち
2017/12/11 22:04:17

『基礎からのWebアプリケーション開発入門』のP.144のリスト4-4の33行目に response.addCookie(newCookie); という行があります。 この分は配列の最後に要素を追加するということなので、nameがCOUNTERの要素(Cookie)が既にある場合も最後に追加するように見えてしまいます。 Tomcatがうまい具合にやっているのかも知れませんが、Henacat版を見ても、やはりCOUNTER要素が増えていくように見えます。 name=COUNTERのCookieが増えないように、どこで制御しているのでしょうか?単純に見落としているだけかも知れないのですが、宜しかったら教えて頂きたいです!
[この投稿を含むスレッドを表示] [この投稿を削除]
[2043] Re:C言語ポインタ完全制覇 第1版 4-2-1 可変長配列の配列についての質問
投稿者:884
2017/12/11 17:14:06

>これで回答になっておりますでしょうか?  おかしな質問をしてすみません。 標準入出力とファイルの関係が理解できていませんでした。 そもそも、stdinは、FILEへのポインタ型なんですね。 標準入出力は、テキストファイルと同じように、ファイルポインタで指定して、 ファイルのように扱ことができる。という理解でよいでしょうか。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2042] flush()について
投稿者:くまきち
2017/12/10 11:29:01

『基礎からのWebアプリケーション開発入門』のP.116のリスト3-17の80行目に resp.printWriter.flush() という行があります。 すごく基本的な質問かもしれないですが、たとえば「メモリ上にだけ持っていてディスクに書き出していないデータがあるかもしれないのでflush」というイメージは分かるのですが、このサンプルの場合はメモリ上のデータのやり取りだけなので、flushを何のために行っているのか分かりませんでした。 宜しければ、ここでflush()を使用している意図を教えて頂きたいです。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2041] Re:C言語ポインタ完全制覇 第1版 4-2-1 可変長配列の配列についての質問
投稿者:(ぱ)こと管理人
2017/12/09 22:06:21

>ここで、このプログラムにおいて、キーボードからの入力(stdin)は、 >void read_slogan(FILE *fp, char **slogan)側で、ファイル(FILE *fp)として、 >認識されるのでしょうか。 すみません、何が質問なのかよくわかりませんが、 リダイレクトでファイルが読み込める、という挙動についてであれば、 read_slogan < slogan.txt というのは、read_sloganの標準入力をslogan.txtというファイルからの入力に 切り替えるという意味です。 標準入力(stdin: standard input)は、デフォルトでキーボードなのですが、 それをファイルからの入力に切り替えているので、 void read_slogan(FILE *fp, char **slogan)側では、fpからslogan.txtの 内容を読むことができます。 これで回答になっておりますでしょうか?
[この投稿を含むスレッドを表示] [この投稿を削除]
[2040] Re:setCookieについて
投稿者:(ぱ)こと管理人
2017/12/09 21:37:53

>『基礎からのWebアプリケーション開発入門』のP.142の1行目に >「もし、Cookieを複数送りたかったら...」とあります。 >しかし、リスト4-3の29行目からのsetCookieは値を上書きしているように見えます。 >掲示板の動作には影響無いと思いますが、誤植ではないでしょうか? この掲示板の投稿画面のHTMLソースを開いてJavaScriptを見ていただくと、 以下のようになっています。 function set_cookie(key, val) { document.cookie = key + "=" + escape(val) + "; expires=Wed, 01-Jan-2031 00:00:00 GMT;"; } function set_cookies() { set_cookie("name", document.mainForm.name.value); set_cookie("url", document.mainForm.url.value); set_cookie("password", document.mainForm.password.value); } 同様のset_cookieの実装で、複数のCookieを設定することができています。 確かに、代入文を見るとどう見ても上書きに見えるので、妙な仕様だと思いますが、 たとえば以下のMozillaのサンプルでも https://developer.mozilla.org/ja/docs/Web/API/Document/cookie 以下のようにあります。 document.cookie = "name=oeschger"; document.cookie = "favorite_food=tripe"; alert(document.cookie); // displays: name=oeschger;favorite_food=tripe
[この投稿を含むスレッドを表示] [この投稿を削除]
[2039] 『センス・オブ・プログラミング!』の正誤について
投稿者:藤四郎
2017/12/07 22:52:50

『センス・オブ・プログラミング!―抽象的に考えること・データ構造を理解す ること』(第1刷) こちらも大変興味深く楽しく拝読しました。コンパクトな本に「低レベル」か ら「高レベル」までのしくみの解説やノウハウで盛りだくさんで、これらの内 容を血肉化できれば自分にもアプリ開発は夢ではないと思いましたので、これ からも何度も読み返すでしょう。 さて、またご面倒をおかけしますが、以下についてそちらの正誤表への追加を ご検討お願いいたします。年末のお忙しい時期におそれいりますが、またご都 合のよろしいときにでもご対応いただければ幸いです。 p.94 本文 l.4 > 逆行していています p.109 l.1 > 脳内になる p.142 l.17 > Congraturations Congratulations p.149 l.4 > なけばならなくなってしまう。 p.177 4-3-9 スタック > 先入れ後出し方式(LIFO--Last In First Out) 後入れ先出し Last In First Out 先入れ後出し First In Last Out どちらも同じ事柄をさしているとは思いますが、念のためエラッタの候補としてあげます。 p.180 下から 9 行目 > 追加すべき要素 「検索すべき要素」だと思います。 p.183 > 27人集れば、誕生日が衝突する確率は50%を超えます。 https://ja.wikipedia.org/wiki/%E8%AA%95%E7%94%9F%E6%97%A5%E3%81%AE%E3%83%91%E3%83%A9%E3%83%89%E3%83%83%E3%82%AF%E3%82%B9 によれば 23 人とのことです。ちなみに、手元の計算でも $ awk 'BEGIN { p1 = 1; p2 = 0; n = 1; > while (p2 <= 0.5) { ++n; p1 *= (365 - n + 1) / 365; p2 = 1 - p1 } > print n, p2 }' 23 0.507297 となりました。 p.192 l.2 > O(1/2N^2) これは誤りとまではいえないとは思いますが、一応、より細かいことをいえば (N-1) + (N-2) + ... + 1 = N(N-1)/2 かと。 (つまり、無視するのは定数の係数だけでなく第二項以降も。) p.226 注 l.4 > sturct p.250 リスト6-1 l.5 > 多重度が0..* p.246 の記述からして「多重度が1..*」が適切と思います。 p.272 図6-16 > 行かページを 「行がページを」だと思います。 同図 > 表示対象範囲に部分的に含まれる段落 「ページをまたがる段落」だと思います。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2038] Re:『Java 謎』3.3 寄り道 - Cで継承を実現してみる
投稿者:藤四郎
2017/12/07 22:30:08

ご返信ありがとうございます。 >確かに動きますが、ポインタのキャストはやはり荒業なので、 >可能であれば避けるべきかとは思います。 一歩間違えると、領域破壊や原因究明困難なバグにつながるのでしょうね。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2037] setCookieについて
投稿者:くまきち
2017/12/07 22:26:27

『基礎からのWebアプリケーション開発入門』のP.142の1行目に「もし、Cookieを複数送りたかったら...」とあります。しかし、リスト4-3の29行目からのsetCookieは値を上書きしているように見えます。掲示板の動作には影響無いと思いますが、誤植ではないでしょうか?
[この投稿を含むスレッドを表示] [この投稿を削除]
[2036] Re:C言語ポインタ完全制覇 第1版 4-2-1 可変長配列の配列についての質問
投稿者:884
2017/12/07 14:08:14

早速の&ご丁寧なご回答ありがとうございます。 サンプルプログラムの内容が理解できました。 OSは、Windows7です。 統合開発環境 VS 2015のVisualC++ Win32コンソールアプリケーションでプロジェクトを作成し、サンプルプログラムの動作確認をしています。 >stdinはキーボードからの入力なので、たとえばコマンドプロンプトで動かしているのならそのままそこでキーボードから打ち込んでも入力できますし、 キーボードからの入力を、7回行ったら、入力した文字が画面に表示されました。 VS 2015のコンソール画面で、slogan.txt(標語ファイル名)をキーボード入力するとファイルが読込まれると勘違いして、ファイル名を入力をしていました。 >たとえば実行形式名がread_slogan.exeで標語ファイルがslogan.txtなら >read_slogan < slogan.txt >のようにリダイレクトで読み込ませる方法もあります。 コマンドプロンプト上で、VS 2015で生成されたread_slogan.exeに、slogan.txt(標語ファイル名)をリダイレクトで読み込ませて、表示することができました。 ここで、このプログラムにおいて、キーボードからの入力(stdin)は、void read_slogan(FILE *fp, char **slogan)側で、ファイル(FILE *fp)として、認識されるのでしょうか。 度々、申し訳ありませんが、ご教示お願いいたします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2035] Re:C言語ポインタ完全制覇 第1版 4-2-1 可変長配列の配列についての質問
投稿者:(ぱ)こと管理人
2017/12/07 01:22:42

はじめまして。 >read_slogan(stdin, slogan); > >のstdinは、キーボードの入力と考えていますが、何を入力すればよいでしょうか。 >1週間分の標語ファイル(.txt)を読み込ませたいのですが、うまくいきません。 stdinはキーボードからの入力なので、たとえばコマンドプロンプトで動かしているのなら そのままそこでキーボードから打ち込んでも入力できますし、 たとえば実行形式名がread_slogan.exeで標語ファイルがslogan.txtなら read_slogan < slogan.txt のようにリダイレクトで読み込ませる方法もあります。 実行しているOSが何かわかりませんが、リダイレクトはWindowsでもMacOSでも Linuxでも使えるので、ぐぐってみてはいかがでしょうか。 たとえばWindowsなら、今探しましたが、以下のようなページがあります。 https://www.adminweb.jp/command/redirect/index4.html
[この投稿を含むスレッドを表示] [この投稿を削除]
[2034] Re:</form>について
投稿者:(ぱ)こと管理人
2017/12/07 01:16:56

>『基礎からのWebアプリケーション開発入門』のP.140にあるリスト4-3について。 >59行目にある</form>は誤植でしょうか? >些細な内容かと思いますが、念の為。 > >仮に誤植だとすると、P.100にあるリスト3-9の37行目も同様かも知れません。 ご指摘ありがとうございます。 formを二重に閉じてしまっていますね。正誤表に上げさせていただきます。
[この投稿を含むスレッドを表示] [この投稿を削除]