From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 34F3BBB84 for ; Fri, 10 Oct 2008 20:49:26 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoUGAD9A70inzgTIgGdsb2JhbACBcoNmhjmHSgEBCwoLBw8FoUCIC4Fs X-IronPort-AV: E=Sophos;i="4.33,391,1220220000"; d="scan'208";a="17955719" Received: from mta5.srv.hcvlny.cv.net ([167.206.4.200]) by mail3-smtp-sop.national.inria.fr with ESMTP; 10 Oct 2008 20:49:25 +0200 Received: from conda.greatnorthern.local (ool-457963cf.dyn.optonline.net [69.121.99.207]) by mta5.srv.hcvlny.cv.net (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007)) with ESMTP id <0K8J008R2DM5ORE1@mta5.srv.hcvlny.cv.net> for caml-list@yquem.inria.fr; Fri, 10 Oct 2008 14:49:17 -0400 (EDT) Received: from greatnorthern.org (conda.localdomain [127.0.0.1]) by conda.greatnorthern.local (Postfix) with ESMTP id 60C881104E4 for ; Fri, 10 Oct 2008 14:48:16 -0400 (EDT) Received: from 69.121.99.207 (SquirrelMail authenticated user serpent) by greatnorthern.org with HTTP; Fri, 10 Oct 2008 14:48:16 -0400 (EDT) Date: Fri, 10 Oct 2008 14:48:16 -0400 (EDT) From: Jason Noakes Subject: Re: [Caml-list] Writing to argv[0] In-reply-to: <48EF57F0.6000203@ramenlabs.com> To: caml-list@yquem.inria.fr Message-id: <1944.69.121.99.207.1223664496.squirrel@greatnorthern.org> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-transfer-encoding: 7BIT Importance: Normal X-Priority: 3 (Normal) References: <48EE22B0.3090404@ramenlabs.com> <48EE23BF.3080300@starynkevitch.net> <48EEDFE5.8080706@ramenlabs.com> <48EF57F0.6000203@ramenlabs.com> User-Agent: SquirrelMail/1.4.9a X-Spam: no; 0.00; argv:01 ocaml:01 idl:01 extern:01 invocation:01 invocation:01 endline:01 -jj:01 10,:98 char:01 char:01 wrote:01 unix:01 caml-list:01 benjamin:01 On Fri, October 10, 2008 9:26 am, Dave Benjamin wrote: > So, I finally got it to work in OCaml. This is GNU/Linux only, most > likely. > > proctitle.idl: > > quote(c, "extern char * program_invocation_name;"); > > [string] char * getproctitle(void) > quote(call, "_res = program_invocation_name;"); > > void setproctitle([string] char * proctitle) > quote(call, "strcpy(program_invocation_name, proctitle);"); > > test.ml: > > let () = > Proctitle.setproctitle "testing setproctitle"; > print_endline (Proctitle.getproctitle ()); > Unix.sleep 10 Just be careful with that. You are copying over memory and you also aren't doing any bounds checking. A long enough "Proctitle.setproctitle" argument will corrupt your process. -JJ -- << Jason J. Noakes >>