在ubuntu 12.04 LTS (64位)上编译makefile时遇到以下错误:
fifo.c: In function ‘OpenPipe’:
fifo.c:28:3: warning: format ‘%s’ expects argument of type ‘char *’, but argument 3 has type ‘int’ [-Wformat]
fifo.c:31:16: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
fifo.c:33:17: warning
问题:我现在的zsh脚本中有一个这个结构的管道。
a|b|c|d|e >result
我想对此进行修改,以便如果某个变量$v不是空的,文件result应该只包含与$v中的regexp匹配的行。
# I don't like this because it causes an extra (possibly large)
# temporary file
a|b|c|d|e >result
if [[ -n $v ]]
then
mv result result1
grep -E $v result1 >result
rm result1
fi
或
# I
我有一个用C编写的项目,由FIFO.h、FIFO.c、task.h、task.c和main.c组成(这是一个基本的队列)。当我在Windows下使用gcc编译我的main.c时,它可以编译并且工作得很好。但是,当我尝试在Eclipse中编译完全相同的代码时,每个函数都会出现以下错误:
一个例子是:
In function `queue_new':
FIFO\Debug/../src/QueueFIFO.c:20: multiple definition of `queue_new'
src\main.o:FIFO\Debug/../src/QueueFIFO.c:20: fir
当我试图写这样的东西
fun test Fifo.empty = true
| test _ = false`
我收到一条错误消息,上面写着Error: variable found where constructor is required: Fifo.empty。我对SML/NJ真的很陌生。原来这与Fifo.empty是一个longId有关,但我还没有想出如何解决这个问题,只是通过将Fifo.isEmpty作为一个参数进行修补,但这不是一个解决方案.
说我有:
$ cat tmp1.txt
a
b
c
然后
$ paste tmp1.txt <(tr '[:lower:]' '[:upper:]'
我如何修改上面的内容
1/只调用tmp1.txt一次?(我怀疑tee)
2/从终端提供tmp1.txt的内容(就像由命令的输出产生的那样)。为此,我试着修补一下,但没有走多远:
$ cat<< 'EOF' | tee >(tr '[:lower:]' '[:upper:]')
a
b
c
EOF
其中产出:
a
b
c
A
B
C
我试图使用IPC通过命名管道在两个进程之间创建一个非常基本的客户端服务器通信。
我有两个管道,即fifo_client和fifo_server
我有以下两个类fifoclient.c和fifoserver.c,它们有下面的代码行来打开这两个管道。
fifoclient.c
int client = open("fifo_client",O_WRONLY);
int server = open("fifo_server",O_RDONLY);
fifoserver.c
int client = open("fifo_client",O_RDONLY
我遇到了一个奇怪的问题。我正在为一个OS类创建一个共享内存fifo队列,它基本上模拟了生产者和消费者的问题。在我的一个将项目插入到共享缓冲区的函数putBuffer()中,我在某个点之后没有得到任何输出,所以我通过gdb运行它,它会打印我认为在初始终端运行时会打印的内容,当我退出gdb时,它会显示程序正常退出,所以我不确定我的错误在哪里。其他人有没有经历过这样的事情?
因此,当我在gdb中运行它时,它会输出"made it past check和fifo->[12]的值,这里只是为了测试而设置了一个硬编码值。但在终端中只打印“使它通过了初始检查。我甚至确保这个错误不在printf
我必须在Ubuntu的C程序中使用mkfifo。但是,当我运行代码:no such file or directory时,有一个错误。
我认为问题是因为我没有设置panel_fifo环境变量。但我不知道我怎么能这么做。
下面是我用来测试这个方法的代码:
char *myfifo="./sock/myfifo";
if (mkfifo(myfifo,0777)<0)
perror("can't make it");
if (fd=open(myfifo,O_WRONLY)<0)
perror("can't o
我使用命名管道FIFO在C(循环生成数字是C)和python (听C生成的数字并读取它们并处理它们)之间进行通信。代码运行良好,除了C中生成的每个数字外,我需要关闭fifo才能在Python中看到它,否则在调用close命令之前它不会在python中显示。我不知道用python代码正确读取FIFO是否是个好主意。我需要注意的是,C代码每50毫秒生成一个数字。这就是为什么我怀疑开放和结束是不是一个好主意。下面是我用C和Python编写的代码:
C作为服务器:
while (1){
t=time_in_ms();
if (t-t0>=50){
我在Winforms中做了一个项目,它应该从t数组中获取值,在C变量中添加值,当我按FIFO按钮时,在tf文本框数组中显示结果。我的问题是我似乎做得不好。我一直在尝试定期添加或什么的,以确保ti的内容或不显示在tf上,但似乎没有任何工作。我的主要问题是,程序只接受数组的第一个值,而不是全部。我会在下面贴出我的代码。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
foreach (Control c in this.Controls)