in reply to Re^2: run TreeTagger in Windows
in thread run TreeTagger in Windows

mkfifo is a unix command that is not supported under windows. There is no directly equivalent command, nor any simple way of emulating it.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

Replies are listed 'Best First'.
Re^4: run TreeTagger in Windows
by lilli (Initiate) on Mar 03, 2009 at 14:40 UTC
    I'm using Perl Power Tools (aka the Unix Reconstruction Project) from the ppt-0.14 package which is there to implement the unix commands in perl. And if I understand it right, it should be working on all types of OP's. But when running it I get the following error: POSIX::mkfifo not implemented on this architecture at C:\Perl\site.....
    Any ideas?
    Bests,
    -lilli.
        Damn...
        Thanks anyway though!
        Bests,
        -lilli.
      NOT IMPLEMENTED means you can't have it, its NOT IMPLEMENTED :D
Re^4: run TreeTagger in Windows
by ikegami (Patriarch) on Mar 03, 2009 at 15:18 UTC
    Windows supports named pipes. They even exist on the file system. I think they are constrained to a pseudo volume, but that probably not an issue in this case. It sounds like a solution could be obtained which wouldn't involve changing the child.

      From my reading of the OPs situation, the other end of the fifo is a pre-existing application. And if that application is using fifos, it must run on unix. Probably on a unix server?

      Short of porting that to Windows, I don't see how the two are going to communicate?

      Even cygwin doesn't provide a mkfifo emulation, and I've never heard of anyone successfully connecting to a unix fifo using a Windows Named Pipe. I guess it might be possible via something like Samba?


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

        From my reading of the OPs situation, the other end of the fifo is a pre-existing application.

        That's my assumption as well.

        I don't see how the two are going to communicate?

        Through the fifo created using CreateNamedPipe as opposed to the fifo created using mkfifo.

        The name of the fifo used by the pre-existing application should be configurable, assuming the pre-existing application is aware of fifos in the first place. The module could be interfacing with a tool that doesn't accept input via STDIN or doesn't produce output on STDOUT.

        it might be possible via something like Samba?

        do you think the pre-existing application is running on a separate machine? Do unix fifos work over NFS?

      Changing what child? Could you maybe be more specific on how a solution could be obtained?
      Bests,
      -lilli.

        Isn't the point of the creating the pipes so their names can be passed to a child process? If so, create the named pipes using the Windows system call (CreateNamedPipe) instead of mkfifo and pass the name of those pipes to the child process.