●●●●TCL/TKなら俺に聞け 4●●●● (542レス)
1-

187: 2017/01/06(金)14:39 ID:XtKi9eaG(1) AAS
>>183
set errorstring [catch {string compare "1" [string match \"*fuga*\" [string tolower $env(HOGE)]] }]
188: 2017/02/13(月)21:11 ID:lSSFCbwv(1/2) AAS
openからパイプで外部コマンドを子プロセスとして起動した時
外部コマンドがエラーで落ちたかどうかってどうすれば検出できるでしょうか?

closeすればエラーメッセージが返ってくるけど,closeする前は,
子プロセスはゾンビになって残ってるのでpidはちゃんと存在してるし,
書き込みとか読み出しとかすればbroken pipeって言われるけど,
なんかスマートじゃないなぁ
189: 2017/02/13(月)21:12 ID:lSSFCbwv(2/2) AAS
あ,ちなみにバージョンは8.4でOSはSolarisです。
190: 2017/02/14(火)18:30 ID:uwayiWk9(1) AAS
「エラーで落ちた」
死んでるけど異常終了すらしてないって意味?
191: 2017/02/14(火)22:23 ID:Eq82JW+1(1) AAS
早速のレスありがとうございます。

で、そうじゃなくてその外部コマンドを普通に起動すれば
エラーメッセージ出して異常終了するんだけど、Tclからたとえば

set ch [open "| hogehoge" +r]

とかやってhogehogeコマンドを起動すると、
hogehogeは異常終了するんだけどメッセージは出さず、
psコマンドで様子見るとゾンビプロセス<defunct>になって
waitされるのを待ってる状態です。

puts $ch fugafuga

みたいに文字列を流し込んでやったり、あとcloseとかすると
はじめて「broken pipe」みたいなメッセージが出ます。
それをcatchすればエラー判定できるのですが、
読み書きする前にエラー判定できるといいなの思ったのですが。
192: 2017/02/15(水)06:18 ID:N3aAX75A(1/3) AAS
stderr->stdoutの変換が必要とか
193: 2017/02/15(水)06:20 ID:N3aAX75A(2/3) AAS
>子プロセスはゾンビになって残ってる

これとも矛盾するかな
194: 2017/02/15(水)06:21 ID:N3aAX75A(3/3) AAS
ああcloseしてないのか
195: 2017/02/15(水)21:04 ID:8cBu9rtM(1) AAS
fblocked の(マニュアルの)用例に(# …通信路が顧客に閉じられた…)があるけど
196: 2017/02/16(木)12:06 ID:1VBkG9E6(1) AAS
顧客ω
197: 2017/02/17(金)22:15 ID:xxRUKv8D(1) AAS
 マニュアルfblockedの項目  原文は「client」 訳文は「顧客」
 いずれにしてもサーバーproc 内で相手側がclosed にすると呼ばれると書いてある
198: 2017/02/17(金)23:14 ID:fTK4d/WW(1) AAS
Linuxのパイプで、エラーになる条件を見れば?

パイプは、どういう場合にエラーになるか
199: 2017/02/18(土)00:22 ID:KqZDiDv5(1) AAS
fblocked試してみたけどダメでした。
素のTclだとシグナルも拾えないしやっぱり無理っぽい

結局openしたものを一旦closeして、エラーがなければ
もう一回openしなおすという方法でできそうではあるけど
スマートじゃないなぁ
200: 2017/02/18(土)00:38 ID:AobYyoSr(1) AAS
A | B | C

のようなコマンド(プロセス)のパイプは、
正常値かエラーか、タイムアウトしかない
201
(1): 2017/03/04(土)20:09 ID:qvg6xl4x(1) AAS
ifやwhileコマンドの第一引数はexprで評価されるので常にブレスで挟んだ方が効率がいい,みたいなことがWikipediaに書いてある.

if [info exists hogehoge] { ... }
if {[info exists hogehoge]} { ... }

Wikipediaに従えば後者のが効率が良いはずだが,括弧が多くなって邪魔臭い.
それとも内部的には処理を最適化して同じ効率だったりするのか.
大したことじゃないが,いつも迷う.
202: 2017/03/05(日)23:08 ID:nindsAFW(1) AAS
バグ防止じゃね
203: 2017/03/06(月)18:16 ID:R4qOQgGq(1) AAS
フン
フン
フン
黒豆よ
204: 2017/07/20(木)19:11 ID:ZZQl41L2(1) AAS
pythonからtk無くなるのはいつ?
205: 本田 2017/09/26(火)23:07 ID:3JGPYe7X(1) AAS
AndroWish allows to run desktop Tcl and Tk programs almost unaltered on the Android Platform
while it opens the door to script a rich feature set of a mobile platform.
外部リンク:www.androwish.org
206
(1): 2017/09/26(火)23:16 ID:HGlCdN70(1) AAS
いまさらレス。
ifはともかくwhileは{}で囲うかどうかで意味が違ってくる。
while [...] {...}
としちゃうと[..]はコマンドを実行した結果がwhileの引数に渡される。
whileの第一引数がループ本体を実行する以前に決定されてしまっている。

while {[...]} {...}
だと[...]という文字列がwhileの引数に渡される。
[...]がループ本体の結果を受けて変化することを期待しているなら後者でしか正常動作しない。
207: 2017/09/28(木)10:19 ID:PJxaABWy(1) AAS
原則を理解しないで上っ面だけ覚えようとするからそうなる
208: 本田 2017/09/29(金)00:06 ID:0ELM3AEs(1) AAS
Tcl/Tk 8.7 is now in alpha development
. Those seeking its new features,
or those invested in keeping their existing Tcl-related work compatible with the next releases of
Tcl and Tk are invited to try and track this development work.
外部リンク[html]:www.tcl.tk
209: 2017/09/29(金)11:09 ID:/1pN5XFr(1) AAS
GJ
210: 本田 2017/10/03(火)00:57 ID:/sf4bemB(1) AAS
Tcl Interpreter in C# Application
外部リンク:wiki.tcl.tk
211: 2017/10/13(金)22:39 ID:JSzbZ2G6(1) AAS
>>206

>>201だけどレスサンクス
質問が悪かったwhileはご指摘の通り勘違い
問題はifのとき
ifではなやむ
212: 本田 2017/10/15(日)01:03 ID:5iehCBRi(1) AAS
tclquadcode
外部リンク:wiki.tcl.tk
Package for compiling Tcl bytecode into LLVM IR (and hence to native code).
Depends on llvmtcl. (Used to depend on tclbdd during the development of some of the compiler reasoning engine;
now removed.) May form the basis for the fastest path of the Tcl execution engine in 9.0;
performance is good, but dependencies are complex.
213: 本田 2017/10/17(火)00:00 ID:KPUGqn7o(1) AAS
The Tcl Tensor package allows for the creation and manipulation of multidimensional numerical arrays.
Formerly known as "Tns".
外部リンク[html]:core.tcl.tk
214: 本田 2017/10/18(水)06:26 ID:b+U1LV46(1) AAS
rattleCAD - Bicycle FrameBuilding CAD - Home
外部リンク:rattlecad.sourceforge.net
rattleCAD is free and a openSource software project.
rattleCAD supports bespoked bicycle frame builders with a fully parametric bicycle model inside.

Design your bicycle - the rattleCAD method (3.4.01.38) - YouTube
動画リンク[YouTube]


[PDF]15th European Tcl/Tk User Meeting - EuroTcl
外部リンク[pdf]:www.eurotcl.tcl3d.org
215: 2017/10/22(日)23:21 ID:URVw1Agy(1/4) AAS
>>168
半導体のデバイス設計ツールのスクリプトがTclなのか知らんが
それと消えるかは別の話
全く他のことに使われてないなら意味がない
216: 2017/10/22(日)23:21 ID:URVw1Agy(2/4) AAS
半導体のデバイス設計ツールのスクリプトがTclなんだよ。
消えようがない

いっちゃうやつきもいね
1-
あと 326 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.767s*