我为我用 C 编写的一个类创建了一个 Linux shell。该 shell 可以完美地运行诸如 ls、pwd、ps、top、cd 等命令。
但是,使用 MakeFile(因为这是提交过程的一部分),当您在终端中使用命令“make test”时,我tcsetpgrp: Inappropriate ioctl for device"
在程序的所有正确输出中都会出现错误。在 Makefile 中test: test.txt | .project4.c
,test.txt 是命令,ls、pwd、ps、top、cd 用换行符而不是逗号分隔。这是什么错误,我该如何摆脱它?
这是我的生成文件:
PAWPRINT=myname
project4:
clean:
rm -f *.o
nuke:
rm -f *.o project4 *.gz
test: project4
cat test.txt | ./project4
submit.sh:
wget -O submit.sh http://somewebsite.com/submit.sh
chmod +x submit.sh
project4.tar.gz: project4.c test.txt Makefile
mkdir -p dist
cp $^ dist
tar -cvzf $@ dist
submit: submit.sh project4.tar.gz
PAWPRINT=$(PAWPRINT) sh submit.sh project4.tar.gz
这是我的 test.txt 文件:
sleep 1000 &
jobs
pwd
ls
echo hello > a.txt
echo world > b.txt
cat a.txt b.txt > c.txt
cat c.txt
我的程序可以在 makefile 之外单独运行这些命令。我设计了程序来处理这些命令,因为这就是分配的目的。