c# - 写入 FIFO 文件、Linux 和 Mono(C#)

标签 c# linux mono fifo mkfifo

我想做我在标题中写的。但我只是无法理解它。我也用谷歌搜索了一切。我想将字符串写入由 mkfifo(我认为)创建的特殊类型 FIFO 的文件。如果有任何其他建议如何做到这一点,欢迎您。

static class PWM
{

    static string fifoName = "/dev/pi-blaster";

    static FileStream file;
    static StreamWriter write;

    static PWM()
    {
        file = new FileInfo(fifoName).OpenWrite();

        write = new StreamWriter(file, Encoding.ASCII);
    }

    //FIRST METHOD
    public static void Set(int channel, float value)
    {
        string s = channel + "=" + value;

        Console.WriteLine(s);

        write.Write(s);

        // SECOND METHOD
       // RunProgram(s);
    }

    //SECOND METHOD
    static void RunProgram(string s)
    {
        System.Diagnostics.Process proc = new System.Diagnostics.Process();
        proc.EnableRaisingEvents = true;

        proc.StartInfo.FileName = "bash";
        string x = "|echo " +s+" > /dev/pi-blaster";
        Console.WriteLine(x);

        proc.StartInfo.Arguments = x;
        proc.StartInfo.UseShellExecute = false;

        proc.StartInfo.RedirectStandardInput = true;

        proc.Start();
       // proc.WaitForExit();
    }
}

最佳答案

解决方案!!!! PI-BLASTER WORKS :D :D(因此失去了 2 天的生命) write.flush 很关键,顺便说一句。

namespace PrototypeAP
{
static class PWM
{

    static string fifoName = "/dev/pi-blaster";

    static FileStream file;
    static StreamWriter write;

    static PWM()
    {
        file = new FileInfo(fifoName).OpenWrite();

        write = new StreamWriter(file, Encoding.ASCII);
    }

    //FIRST METHOD
    public static void Set(int channel, float value)
    {
        string s = channel + "=" + value + "\n";

        Console.WriteLine(s);

        write.Write(s);
        write.Flush();
    }
}
}

关于c# - 写入 FIFO 文件、Linux 和 Mono(C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17241071/

相关文章:

c# - 引用文件的 XML 注释

c# - 正则表达式\b 但在 c# 中不只是字母数字字符

c# - 如何在 .NET 3.5 中控制音频音量?

linux - 内部服务器错误 - apache 2.4 & mod_perl

linux - Bash 脚本 : Appending text at the last character of specific line of a file

linux - 并行进程: appending outputs to an array in a zsh script

c# - 获取访问点列表并使用 Linux Mono/C# 进行连接

c# - 从 C++ 调用 C# 函数?

使用 Web 服务访问数据库的 C# 桌面应用程序 > PHP 或 C# Webservice

c# - 如何从存储的运行时类型构建列表或数组类型以便进行比较?