在c ++程序中连续运行两个shell命令

时间:2013-02-07 05:56:00

标签: c++ g++ system

以下shell命令伴随着它们执行的操作:

lex q5.l   ->produces lex.yy.c
g++ lex.yy.c -o q5  ->compiles lex.yy.c and produces a relocatable object file

现在我想在c ++程序(main.cpp)中执行此操作。所以,我在main.cpp中执行以下操作:

system("lex q5.l");
system("gcc lex.yy.c -o q5"); 

但是当我在shell中执行g++ main.cpp -o main时,会产生以下错误:

q5.l:1: premature EOF
g++: error: lex.yy.c: No such file or directory

当我检查文件夹时,没有lex.yy.c。但是,如果我从shell显式运行lex q5.l,则该文件夹包含lex.yy.c。所以,我认为lex q5.l没有在我的程序main.cpp中执行。

任何人都可以指出问题以及正确执行main.cpp的方法。

1 个答案:

答案 0 :(得分:2)

在您的程序中,在执行q5.l调用之前,您不会刷新或关闭编写system的流...输出文件不能具有预期的内容....