🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.comp.lang.tcl
Article #9

Re: C と Tk の使い方について

#9
From: Hiroshi Narimatsu
Date: Tue, 09 Jun 1998 00:00
53 lines
3458 bytes
成松@ハンブルソフトです。

In article <6lgv6n$kn6$1@jaist-news.jaist.ac.jp> ttate@jaist.ac.jp writes:

>   立石@JAISTです。
>
>   便乗質問ですが失礼致します。
>
>   nari@mxb.meshnet.or.jpさん(06月04日13時):
>   nari>>======================= sample.c ============================
>   nari>>#include <tk.h>
>   nari>>
>   nari>>main()
>   nari>>{
>   nari>>  Tcl_Interp *interp;
>   nari>>  interp = Tcl_CreateInterp();
>   nari>>  if (Tcl_Init(interp) == TCL_ERROR) exit(1);
>   nari>>  if (Tk_Init(interp) == TCL_ERROR) exit(1);
>   nari>>  Tcl_StaticPackage(interp, "Tk", Tk_Init, (Tcl_PackageInitProc *) NULL);
>   nari>>  Tcl_Eval(interp,"button .exit -text exit -command exit;pack .exit");
>   nari>>  Tk_MainLoop();
>   nari>>  Tcl_DeleteInterp(interp);
>   nari>>  Tcl_Exit(0);
>   nari>>}
>   nari>>======================= sample.c  (ここまで) ================
>
>   これはTcl8.0/Tk8.0までなら正常に動作しますが、
>   Tcl8.1/Tk8.1だとcoreを吐いて死んでしまいます。
>   この症状は僕だけなのでしょう?
>   他の方はどうでしょう?

Tcl8.1/Tk8.1を持って来てためしたところ、こちらでも Bus Errorになりまし
た。デバッガでみると Tcl_Evalの内部、Tcl_Parseと言うところで落ちている
みたいなので、試しに gccに -fwritable-stringオプションをつけると正常に
動作するようになりました。

man Tcl_Evalを見ると 引数の説明に、must be in writable memory とあります。

=========================== ここから ==================================
       char         *script      (in)                            ||
                                           Points to  first  byte |
                                           of  script to execute. |
                                           This script must be in |
                                           writable  memory: tem- |
                                           porary   modifications |
                                           are  made to it during |
                                           parsing.               |
=========================== ここまで ==================================

いつのまにか、ここが変更になったのだと思います。
--
成松 宏      nari@mxb.meshnet.or.jp  http://www2b.meshnet.or.jp/~nari
Technical Details
Message-ID: <6likfd$5j9$1@hslpc1.humble.co.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <35721239.D890E0A1@kais.kyoto-u.ac.jp> <6kvj1s$k98$2@hslpc1.humble.co.jp> <35754C99.C3F5382A@kais.kyoto-u.ac.jp> <6l57qq$jn1$1@hslpc1.humble.co.jp> <6lgv6n$kn6$1@jaist-news.jaist.ac.jp>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 149cc1,347df835c7d5c566
X-Google-Attributes: gid149cc1,public
X-Google-Thread: 114a87,347df835c7d5c566
X-Google-Attributes: gid114a87,public
X-Google-Thread: 111bd3,347df835c7d5c566
X-Google-Attributes: gid111bd3,public
From: nari@mxb.meshnet.or.jp (Hiroshi Narimatsu)
Subject: Re: C と Tk の使い方について
Date: 1998/06/09
Message-ID: <6likfd$5j9$1@hslpc1.humble.co.jp>
X-Deja-AN: 360938151
References: <35721239.D890E0A1@kais.kyoto-u.ac.jp> <6kvj1s$k98$2@hslpc1.humble.co.jp> <35754C99.C3F5382A@kais.kyoto-u.ac.jp> <6l57qq$jn1$1@hslpc1.humble.co.jp> <6lgv6n$kn6$1@jaist-news.jaist.ac.jp>
Mime-Version: 1.0 (generated by tm-edit 7.106)
Content-Type: text/plain; charset=ISO-2022-JP
X-Complaints-To: news@newssvd06.biglobe.ne.jp
X-Trace: meshsv230.tk.mesh.ad.jp 897373526 15416 (None) 210.147.10.37
Organization: Humble Soft Ltd. Japan
Newsgroups: fj.comp.lang.tcl,fj.comp.lang.c,fj.conp.lang.c++