f



"pipe" in Tcl 8.5ff

Hi,

I am looking for a replacement of the "pipe" command of tclx. This
command creates a FIFO and returns one fd for reading and one for
writing. A similar command in C is 

#include <unistd.h>
int pipe(int pipefd[2]);

How do I do that with plain Tcl (version >= 8.5)?

Best regards

Ole
0
8/8/2013 11:38:45 AM
comp.lang.tcl 23429 articles. 2 followers. Post Follow

5 Replies
508 Views

Similar Articles

[PageSpeed] 9

Στις 8/8/2013 2:38 μμ, ο/η Olе Streicher έγραψε:
> Hi,
>
> I am looking for a replacement of the "pipe" command of tclx. This
> command creates a FIFO and returns one fd for reading and one for
> writing. A similar command in C is
>
> #include <unistd.h>
> int pipe(int pipefd[2]);
>
> How do I do that with plain Tcl (version >= 8.5)?
>
> Best regards
>
> Ole
>

In tcl 8.6, with the "chan pipe" command. In tcl 8.5, with the tclpipe 
extension:

http://wiki.tcl.tk/21637

If you need this for executing commands, see the man page for "open" and 
possibly "exec".

George
0
petasisg (135)
8/8/2013 11:52:14 AM
Hi George,

George Petasis <petasisg@yahoo.gr> writes:
> Στις 8/8/2013 2:38 μμ, ο/η Olе Streicher έγραψε:
>> I am looking for a replacement of the "pipe" command of tclx. 
> In tcl 8.6, with the "chan pipe" command. In tcl 8.5, with the tclpipe
> extension:
>
> http://wiki.tcl.tk/21637

Is there a way to do it in plain tcl, without the need to compile an
external package?

> If you need this for executing commands, see the man page for "open" and
> possibly "exec".

No; I need it to communicate between two processes that are [fork]ed.

Best regards

Ole
0
8/8/2013 12:10:52 PM
Hi George,

George Petasis <petasisg@yahoo.gr> writes:
> Στις 8/8/2013 2:38 μμ, ο/η Olе Streicher έγραψε:
>> I am looking for a replacement of the "pipe" command of tclx. 
> In tcl 8.6, with the "chan pipe" command. In tcl 8.5, with the tclpipe
> extension:
>
> http://wiki.tcl.tk/21637

Is there a way to do it in plain tcl, without the need to compile an
external package?

One idea here would be to replace the tclx "pipe rfd wfd" with

set rfd open "|cat"
set wfd $rfd
if {[fork] == 0} {
   puts $wfd "Hello world"
   flush $wfd
   close $wfd
   exit
} else {
   ... read everything from the fork
   close $rfd
}

> If you need this for executing commands, see the man page for "open" and
> possibly "exec".

No; I need it to communicate between two processes that are [fork]ed.

Best regards

Ole
0
8/8/2013 12:41:12 PM
Hi George,

George Petasis <petasisg@yahoo.gr> writes:
> Στις 8/8/2013 2:38 μμ, ο/η Olе Streicher έγραψε:
>> I am looking for a replacement of the "pipe" command of tclx. 
> In tcl 8.6, with the "chan pipe" command. In tcl 8.5, with the tclpipe
> extension:
>
> http://wiki.tcl.tk/21637

Is there a way to do it in plain tcl, without the need to compile an
external package?

One idea here would be to replace the tclx "pipe rfd wfd" with

set fd open "|cat"
if {[fork] == 0} {
   puts $fd "Hello world"
   flush $fd
   close $fd
   exit
} else {
   ... read everything from the fork
   close $fd
}

> If you need this for executing commands, see the man page for "open" and
> possibly "exec".

No; I need it to communicate between two processes that are [fork]ed.

Best regards

Ole
0
8/8/2013 12:45:08 PM
Στις 8/8/2013 3:45 μμ, ο/η Olе Streicher έγραψε:
> Hi George,
>
> George Petasis <petasisg@yahoo.gr> writes:
>> Στις 8/8/2013 2:38 μμ, ο/η Olе Streicher έγραψε:
>>> I am looking for a replacement of the "pipe" command of tclx.
>> In tcl 8.6, with the "chan pipe" command. In tcl 8.5, with the tclpipe
>> extension:
>>
>> http://wiki.tcl.tk/21637
>
> Is there a way to do it in plain tcl, without the need to compile an
> external package?
>
> One idea here would be to replace the tclx "pipe rfd wfd" with
>
> set fd open "|cat"
> if {[fork] == 0} {
>     puts $fd "Hello world"
>     flush $fd
>     close $fd
>     exit
> } else {
>     ... read everything from the fork
>     close $fd
> }
>
>> If you need this for executing commands, see the man page for "open" and
>> possibly "exec".
>
> No; I need it to communicate between two processes that are [fork]ed.
>
> Best regards
>
> Ole
>
I think a good example with open is here: http://wiki.tcl.tk/3543

You can use the channel returned by open for both reading & writting.

George
0
petasisg (135)
8/8/2013 1:49:12 PM
Reply:

Similar Artilces:

"::tcl::tm::UnknownHandler ::tclPkgUnknown msgcat 1.4" caused by replacing Tcl 8.4.1 with 8.5.7
In the blog http://planet.larrythecow.org/archives/2009-07-26.html "The Twouble with Tcl" Iain Buchanan shows that redefining OPEN proc leads to the errors similar to what I am getting - when I replaced Tcl 8.4.1 with Tcl 8.5.7. In my case I don't know the exact root cause though ... Any ideas how I should proceed with debugging this issue ? Thanks, Alex tclsh c:/Tornado/host/resource/hutils/tcl/makeSymTbl.tcl ppc tmp.o symTbl.c invalid command name "::tcl::tm::UnknownHandler" while executing "::tcl::tm::UnknownHandler ::tclPkgUnknown msg...

""""""""""""""""""""""ADD ME""""""""""""""""""""
Hi , Hope you are doing great. Please let me take this opportunity to introduce myself, Iam Karthik working with BhanInfo Inc, a NY based company. We have consultants on our bench on various technologies, my request is to add me to your distribution list and kindly do send me the requirements. i have the below list available 1. Mainframe 2. Java 3.. Financial Analyst 4. Data Architect If there is any vendor ship agreement which has to be signed then I would like to take an opportunity to represent my company and expect your cooperation... We look forward to build a ve...

"""""""""ADD ME""""""""""
Hi , Hope you are doing great. Please let me take this opportunity to introduce myself, Iam Karthik working with BhanInfoi Inc, a NY based company. We have consultants on our bench on various technologies, my request is to add me to your distribution list and kindly do send me the requirements. i have the below list available 1. Mainframe 2. Java 3.. Financial Analyst 4. Data Architect If there is any vendor ship agreement which has to be signed then I would like to take an opportunity to represent my company and expect your cooperation... ...

Unable to understand "uplevel" and "upvar" in TCL
Hi, I have never been able to understand "uplevel" and "upvar" in TCL and when to use them? Can anyone explain this to me in a way that I can understand, with examples please? Thanks, Ahmed Ahmed Omara wrote: > Hi, > > I have never been able to understand "uplevel" and "upvar" in TCL and > when to use them? > > Can anyone explain this to me in a way that I can understand, with > examples please? They are highly useful when implementing your own control structures, but it's not limited to. They make m...

checkbuttons in tcl 8.4.12 and 8.5a4 with -offvalue == ""?
Hello, I just realized some differences between the checkbuttons visualisation in tcl 8.4 and 8.5. If the offvalue of a checkbutton is set to "" (empty string) and the checkbutton is not "checked", than ... - in tcl 8.4.12 the background is white - in tcl 8.5a4 the background is grey and the "check" is still visible That's a bug, isn't it? If the offvalue is " " (one blank), than every thing works. Best regards, Martin Lemburg UGS - Transforming the Process of Innovation MartinLemburg@UGS wrote: > Hello, > > I just reali...

Urgent Requirement in """""""""""""NEW YORK""""""""""""""""
Hello Partners, Please find the requirement below. Please send the updated resume along with rate and contact no. REQ#1: Title : Java Developer ( Rating Project) Duration : 6 months Rate : open Location : NY strong java, WebLogic 9.2, Web Services, Oracle REQ#2: Title : Java Developer Duration : 4 months Rate : open Location : NY Strong java, SQL REQ#3: Title : VB.Net Consultant Location : NY Duration : 4 months Rate : open Primarily looking at someone who has Excel, VB.net and Oracle (good to have). Req #4: Title : Java Developer (MSA Project) Duration : 6+ months Rate : open Location : NY Note : Please send your updated resume along with contact no karthik@bhaninfo.com : No phone calls please. Thanks & Regards Karthik BhanInfo karthik@bhaninfo.com ...

why "::", not "."
Why does the method of modules use a dot, and the constants a double colon? e.g. Math::PI and Math.cos -- Posted via http://www.ruby-forum.com/. On Oct 26, 2010, at 01:48 , Oleg Igor wrote: > Why does the method of modules use a dot, and the constants a double > colon? > e.g. > Math::PI and Math.cos For the same reason why inner-classes/modules use double colon, because = they're constants and that's how you look up via constant namespace. Math::PI and ActiveRecord::Base are the same type of lookup... it is = just that Base is a module and PI is a float....

about "++" and "--"
why this program snippet display "8,7,7,8,-7,-8" the program is: main() { int i=8; printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--); } > why this program snippet display "8,7,7,8,-7,-8" Ask your compiler-vendor because this result is IMHO implementation-defined. Check this out: http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.15 http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.16 Regards, Irina Marudina fxc123@gmail.com wrote: > why this program snippet display "8,7,7,8,-7,-8&q...

"or" and "and"
Hi, I'm just getting to discover ruby, but I find it very nice programming language. I just still don't understand how the "or" and "and" in ruby... I was playing with ruby and for example made a def to print Stem and Leaf plot (for those who didn't have a statistics course or slept on it, e.g. http://cnx.org/content/m10157/latest/) Here is the Beta version of it: class Array def n ; self.size ; end def stem_and_leaf(st = 1) # if st != (2 or 5 or 10) then ; st = 1 ; end k = Hash.new(0) self.each {|x| k[x.to_f] += 1 } k = k.sort{|a, b| a[0].to_f <=&g...

"out" and "in out"
Hi i found the following explaination: In Ada, "in" parameters are similar to C++ const parameters. They are effectively read-only within the scope of the called subprogram. Ada "in out" parameters have a reliable initial value (that passed in from the calling subprogram) and may be modified within the scope of the called procedure. Ada "out" parameters have no reliable initial value, but are expected to be assigned a value within the called procedure. What does "have no reliable initial value" mean when considering the "out" parameter? By c...

"If then; if then;" and "If then; if;"
I have a raw data set which is a hierarchical file: H 321 s. main st P Mary E 21 F P william m 23 M P Susan K 3 F H 324 S. Main St I use the folowing code to read the data to creat one observation per detail(P) record including hearder record(H): data test; infile 'C:\Documents and Settings\retain.txt'; retain Address; input type $1. @; if type='H' then input @3 Address $12.; if type='P' then input @3 Name $10. @13 Age 3. @16 Gender $1.; run; but the output is not what I want: 1 321 s. main H 2 321 s. main P Mary E 21 F 3 321 s...

"my" and "our"
Hi, while testing a program, I erroneously declared the same variable twice within a block, the first time with "my", the second time with "our": { my $fz = 'VTX_Link'; .... ( around 200 lines of code, all in the same block) our $fz = 'VTX_Linkset'; ... } So the initial contents of the $fz declared with "my" is lost, because "our" creates a lexical alias for the global $fz, thus overwriting the previous "my" declaration. It was my error, no question. But I wonder why Perl doesn't mention this - even with "use s...

"/a" is not "/a" ?
Hi everybody, while testing a module today I stumbled on something that I can work around but I don't quite understand. >>> a = "a" >>> b = "a" >>> a == b True >>> a is b True >>> c = "/a" >>> d = "/a" >>> c == d True # all good so far >>> c is d False # eeeeek! Why c and d point to two different objects with an identical string content rather than the same object? Manu Emanuele D'Arrigo wrote: >>>> c = "/a" >>>&...

Urgent Requirement for """""""""""""""INFORMATICA DEVELOPER"""""""""""""
Hello Partners, How are you ? Please find the requirements below. Title: Database/ETL Developer Duration: 6 months Location: NY Exp: 7+ Locals preferred Database/ETL requirements (Mandatory) Candidate must have worked with financial instruments, preferably Mutual Funds but, Equities are also ok. PL/SQL - packages, Stored procs, Functions, Aggregate functions, Pipelined Functions Informatica 8.6 - especially complex mappings, complex maplets, complex workflows, transformations Oracle 10g/11g Unix/Linux shell scripting ...

How to do PHP "require()" or TCL "source" in bash script
I'm sorry but I can't figure out how to explain this any better than this. In PHP we have a command "require()" that obtains a file and logically places it into another file. I cannot figure out how to do this in bash script as the requirement is necessary for a migration script to obtain the code from a .cfg file and then be able for the "parent" script to run the code it "imported" from the .cfg file, much like PHP's require() or TCL's "source". This is what I have so far and it fails: if [ -f ivc.cfg ]; then cat ivc.cfg fi Anyone...

Urgent need """""""""""INFORMATICA DEVELOPER"""""""""""""
Hello Partners, How are you ? Please find the requirements below. Title: Database/ETL Developer Duration: 6 months Location: NY Exp: 7+ Locals preferred Database/ETL requirements (Mandatory) Candidate must have worked with financial instruments, preferably Mutual Funds but, Equities are also ok. PL/SQL - packages, Stored procs, Functions, Aggregate functions, Pipelined Functions Informatica 8.6 - especially complex mappings, complex maplets, complex workflows, transformations Oracle 10g/11g Unix/Linux shell scripting Database/ETL requirements (Optional) Data warehousing experience Threading and job concepts in 10g/11g Cost based Optimizer concepts in 10g/11g Must : Experience with XML files and partitioning concepts in Oracle, Collections, Material Views Note : No phone calls please. : send Resumes to karthik@bhaninfo.com Thanks & Regards Karthik BhanInfo karthik@bhaninfo.com ...

"In" "Out" and "Trash"
I just bought a new computer and I re-installed Eudora Light on my new computer. But when I open Eudora, the "In", "Out" and "Trash" links are not on the left side of the screen the way they were on my old computer. How can I get these links back on the left side of the screen? Thank you. On 25 Mar 2007 09:49:22 -0700, "abx" <abfunex@yahoo.com> wrote: >I just bought a new computer and I re-installed Eudora Light on my new >computer. But when I open Eudora, the "In", "Out" and "Trash" links >are ...

A problem about "[ ]" "( )" "="
I want to read several images saved in a director,and give them to I1,I2 ,I3....,using the following codes: filelist=dir(['c:\MATLAB701\work\...\*.jpg']); for i=1 :length(filelist) I=imread(fullfile('c:\MATLAB701\work\...',filelist(i).name)); end; but failed. Then I used I(i)=imread... ,still failed. How could I do? "John" <mailofww@126.com> wrote in message news:ef19e12.-1@webx.raydaftYaTP... >I want to read several images saved in a director,and give them to > I1,I2 ,I3....,using the following codes: > filelist=dir(['c:\MATLAB701\work\.....

Does it need a ";" at the very after of "if" and "for"
write code like: int main(void) { int a=10; if(a<20) {} } Compiler ok on dev-cpp . don't we have to add a ";" after if statement? marsarden said: > write code like: > > int main(void) > { > int a=10; > if(a<20) > {} > } > > Compiler ok on dev-cpp . don't we have to add a ";" after if > statement? The syntax for 'if' is: if(expression) statement There is no semicolon after the ) but before the statement. The statement is either a normal statement (which can be empty), ending in a semicolon:- if(expr) ...

Looking for binary "expect" and "TCL/Tk" (if required) for OpenServer6
Does anybody know where to find "expect" (and related requirements) for OpenServer6? I can download the source files from nist.gov, but they do not compile. The MAN pages are already loaded on the system, so I suspect the programs would be on the distribution media somewhere. Any help would be appreciated. Thanks, Rick On 9 Feb, 17:57, Rick_Hoyle <motosl...@hotmail.com> wrote: > Does anybody know where to find "expect" (and related requirements) > for OpenServer6? I can download the source files from nist.gov, but > they do not compile. The MAN pages are al...

Select .. WHERE lang="nl" or lang="en"
Hi, I have a table `cities`: city_id countrycode languagecode name primary key (city_id, languagecode) I want fetch all cities with countrycode=3D"fr" and languagecode=3D"nl", If city_id in languagecode=3D"nl" not exists, I want fetch THIS city in languagecode=3D"en" EXAMPLE: city_id countrycode languagecode name: 1 fr en Paris 2 fr en Bordeaux 1 fr pl Pary=BF 2 fr pl (null OR '') countrycode=3D"fr" and languagecode=3D"pl": 2 fr en Bordeaux 1 fr pl Pary=BF Any ideas? dag wrote: > Hi, > > I have a table `cities`: > city_id > countrycode > languagecode > name > primary key (city_id, languagecode) > > I want fetch all cities with countrycode="fr" and languagecode="nl", > If city_id in languagecode="nl" not exists, I want fetch THIS city in > languagecode="en" > > > EXAMPLE: > city_id countrycode languagecode name: > 1 fr en Paris > 2 fr en Bordeaux > 1 fr pl Pary� > 2 fr pl (null OR '') > > countrycode="fr" and languagecode="pl": > 2 fr en Bordeaux > 1 fr pl Pary� > > > Any ideas? You said: 'If city_id in languagecode=... not exists, I want fetch THIS city in languagecode="en"' But in the example you have given, the city_id 2 with countrycode = "fr" and languagecode="pl" DOES exist, and yest yo...

What's wrong with "fconfigure stdout -encoding utf-8" on windows in Tcl 8.5.10
With my built 8.5.10 I tried to issue command "fconfigure stdout - encoding utf-8" to tclsh on WinXP, the tcl prompt then was shown as two dots instead of percentage sign, C:\>tclsh85t.exe % fconfigure stdout -encoding utf-8 =E2=80=A5date The current date is: 11/29/2011 Tue Enter the new date: (mm-dd-yy) time The system cannot accept the date entered. Enter the new date: (mm-dd-yy) =E2=80=A5 =E2=80=A5 So wonder what's wrong with fconfigure on stdout? Is that the issue? On Nov 29, 7:46=C2=A0am, "wrena...@gmail.com" <wrena...@gmail.com> wrote: > With my b...

How to open a pty from Tcl (or "please translate C example to Tcl")
Hello out there, still struggling with getting TCP/IP to work in my somewhat bizarre setup (TCP/IP over 10.000 Volt power-line modems) I got a hint to try to use a pseudo tty. I got the advice --- What you would do is write a small C program (or perl, or any of a number of other languages). This program would call the "openpty" function, which: - Locates the next available (unused) pseudo-TTY device in the system, - Opens both ends of it, into two different descriptors, - Returns the file-descriptor numbers for the two ends (the "slave" end which mimics a tty, and t...

Using "source" vs "package require" for Tcl application files
I would like to divide my Tcl application into separate files. Should I generally use "source" to combine the files, or should I use the package mechanism (package provide, package require, etc.)? What is the generally accepted practice? Thanks, Gregg On 30 dec, 01:04, GB <g...@invalid.invalid> wrote: > I would like to divide my Tcl application into separate files. Should I > generally use "source" to combine the files, or should I use the package > mechanism (package provide, package require, etc.)? > > What is the generally accepted practice? &g...

Web resources about - "pipe" in Tcl 8.5ff - comp.lang.tcl

Resources last updated: 3/8/2016 6:23:55 AM