我这里正好有一个类似的程序,改了一下,看看能否满足需要吧
//file: read_write_fifo.c#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/stat.h>
int main(int argc,char **argv)
{
int fd
int len = 0
char read_buf[1024]
char write_buf[1024]
pid_t pid
int status = 0
if(mkfifo("fifo1", 0666) < 0 && errno!=EEXIST) // 创建FIFO管道
perror("Create FIFO Failed")
if((pid = fork()) < 0) // 创建子进程
perror("Fork error\n")
else if (pid == 0)
{
if((fd = open("fifo1", O_WRONLY)) < 0) // 以写打开一个FIFO
{
perror("Open FIFO Failed")
exit(1)
}
while(1)
{
printf("Child send:")
scanf("%s",write_buf)
if(!strcmp(write_buf,"quit"))
{
close(fd)
exit(0)
}
if(write(fd, write_buf, 1024) < 0) // 写入到FIFO中
{
perror("Write FIFO Failed")
close(fd)
exit(1)
}
usleep(100)
}
}
if((fd = open("fifo1", O_RDONLY)) < 0) // 以读打开FIFO
{
perror("Open FIFO Failed")
exit(1)
}
while(waitpid(pid, &status, WNOHANG) == 0)
{
len = read(fd, read_buf, 1024) // 读取FIFO管道
if(len > 0)
printf("Father recv: %s\n", read_buf)
}
close(fd) // 关闭FIFO文件
return 0
}
先占下楼层,空了慢慢给你做!先做第一题1月12日:
#!/bin/bash
echo this "date" :`date`
echo this "cal" :`cal`
echo this "pwd" :`pwd`
echo this "ls" : `ls`.
第二题1月12日:
这个没法写了撒 太笼统;建议翻翻书。
我列个环境变量的例子吧:
#!/bin/bash
echo "第二题":
TEST_DIR=/root
export $TEST_DIR
echo "环境变量TEST_DIR是/root".
第三题1月12日:
#!/bin/bash
echo "第三题for":
echo "3.1 for"
x=0
for ((i=1 i<101 i++))
do
x=$(($x+$i))
done
echo $x
echo "---------------------------------"
echo "第三题while":
echo "3.2 while"
x=0
i=1
while [ $i -lt 101 ]
do
i=$(($i+1))
x=$(($x+$i))
done
echo $x
第三题第二个
#!/bin/bash
echo "3.2"
function fib {
if [ $1 -lt 2 ]then
echo -n $1
else
local n_2=$(($1 - 2))
local n_1=$(($1 - 1))
local f_n_2=$(fib $n_2)
local f_n_1=$(fib $n_1)
local f_n=$((f_n_2 + f_n_1))
echo -n $f_n
fi
}
n=10
for ((i = 0i <$ni++))
do
printf "fib(%2d) = %d\n" $i $(fib $i)
done
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)