Tag: shell

C程序调用shell脚本

我有一个小的C程序调用shell脚本myScript.sh。 我得到ret的值为256.请帮助我知道系统调用出了什么问题? int main() { int ret; ret = system (myScript.sh); ret >>= ret; if (ret != 0) { printf(“ret is [%d]”,ret); } } 使用64位UNIX操作系统并使用ksh shell

execve(“/ bin / sh”,0,0); 在管道里

我有以下示例程序: #include int main(int argc, char ** argv){ char buf[100]; printf(“Please enter your name: “); fflush(stdout); gets(buf); printf(“Hello \”%s\”\n”, buf); execve(“/bin/sh”, 0, 0); } 我和我在没有任何管道的情况下运行它应该工作并返回一个sh promt: bash$ ./a.out Please enter your name: warning: this program uses gets() which is unsafe. testName Hello “testName” $ exit bash$ 但这不适用于管道,我想我知道为什么会这样,但我无法找到解决方案。 示例运行波纹管。 bash$ echo -e “testName\npwd” | ./a.out Please […]

如何手工编写(shell)词法分析器

我正在研究一个shell,一个像bash一样的小shell,没有脚本(如果……)我必须手工制作词法分析器/解析器(LL)。 因此词法分析器会将命令( char * cmd )转换为链表( t_list * list )。 LL解析器将链接列表( t_list * list )转换为带有语法的AST(二叉树t_btree * root ) 所以,我知道如何制作LL解析器,但我不知道如何标记我的命令。 例如: ps | grep ls >> file ; make && ./a.out ps | grep ls >> file ; make && ./a.out > ‘ps’ ‘|’ ‘grep’ ‘ls’ ‘>>’ ‘file’ ‘;’ ”make ‘&&’ ‘./a.out’ ‘ps’ ‘|’ ‘grep’ ‘ls’ […]

获取终端窗口的大小(行/列)

有没有可靠的方法来获取当前输出终端窗口的列数/行数? 我想在C / C ++程序中检索这些数字。 我主要是在寻找GNU / Linux解决方案,但也需要Windows解决方案。

编写基本Shell

对于我的课,我必须创建一个类似于bash的基本shell,允许用户调用ls,sleep等命令。我正在寻找有关如何执行此操作的资源:教程,帮助文本,示例代码甚至只是一些关于如何入门的一般信息。 有没有人有链接或信息来帮助我?

是否可以构建交互式C shell?

我只是想知道这是否可能使用(Python,Java或C)? 我正在寻找类似IPython for Python的东西。

将C或C ++文件作为脚本运行

所以这可能是一个很长的镜头,但有没有办法将C或C ++文件作为脚本运行? 我试过了: #!/usr/bin/gcc main.c -o main; ./main int main(){ return 0; } 但它说: ./main.c:1:2: error: invalid preprocessing directive #!

使fopen()从某个目录中打开文件

我有一个类似的function FILE *file1 = fopen(“testing.txt”, “r”); 我不能修改这一行。 但是,如果我在/tmp创建名为“testing.txt”的文件,我是否能够使该函数从/tmp而不是它自己的目录加载文件。 (也许通过修改PATH变量?)

执行shell命令(c)

我这部分代码,指示我的程序(制作屏幕截图)生成一个命令并退出(关闭)它自己。 这可用于在程序中使用键切换到程序,例如生成“gimp”或用户想要使用它的其他图像编辑器。 case SWITCH_TO: if( arg ) { char commandline[ 256 ]; snprintf( commandline, sizeof (commandline), “%s &”, arg ); system( commandline ); cmd->quit = 1; } break; 例如使用: program-command SWITCH_TO “gimp” 将有我的程序调用系统(“gimp&”),退出(关闭)本身并运行gimp。 program-command SWITCH_TO “fotoxx” 将有我的程序调用系统(“fotoxx&”),退出(关闭)本身并运行fotoxx。 我希望我的程序检查“命令行”是否有效(在$ PATH中找到的应用程序),如果没有,命令“program-command SWITCH_TO”不运行而不关闭我的程序(“cmd-> quit = 1”执行此操作,关闭程序)。 谢谢

如何交替替换大写和小写?

我正在编写一个程序,可以将大写转换为小写,小写转换为大写。 这里有些例子。 abcde – > aBcDe ABCDE – > aBcDe abCdE – > aBcDe 我知道如何在c中制作它而不是shell脚本。 这是c代码。 1 #include 2 #include 3 #include 4 #include 5 6 int main(int args, char* argv[]) 7 { 8 9 if(args != 2) 10 exit(1); 11 char buf[100]; 12 for(int i = 0; i < strlen(argv[1]); i++) 13 { 14 […]