linux 下c语言调用终端命令
2013-04-01 16:20
295 查看
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 1024 int main() { FILE *fstream = NULL; int error=0; char buff[MAX_SIZE]={0}; if(NULL == (fstream=popen("ls -r","w")))//这个应该是写方式的管道 { fprintf(stderr,"execute command failed:%s",strerror(error)); return -1; } if(NULL != fgets(buff,sizeof(buff),fstream)) { printf("%s",buff); } else { pclose(fstream); return -1; } pclose(fstream); printf("Hello world!\n"); return 0; }
上面的函数功能,就是ls -r这个命令的结果输出到调试窗口
下面是输入的版本:主要是调用popen函数,这个函数的缺点是要默认的开启一个sh
#include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #define MAX_SIZE 1024 void InputShell(char * shell) { FILE *read_fp = NULL; char buffer[MAX_SIZE]; int chars_read = 0; memset(buffer, 0, sizeof(buffer)); read_fp = popen(shell, "r"); if (read_fp != NULL) { chars_read = fread(buffer, sizeof(char), MAX_SIZE, read_fp); while (chars_read > 0)//读取多数shell命令,shell命令比较长。 { buffer[chars_read - 1] = 0; printf("Reading:\n%s\n", buffer); chars_read = fread(buffer, sizeof(char), MAX_SIZE, read_fp); } pclose(read_fp); //return EXIT_SUCCESS; } } int main() { char shell[MAX_SIZE] = {0} ;//= NULL; //while(1) //{ scanf("%s",shell); //gets(shell); InputShell(shell); //} return EXIT_FAILURE; }
相关文章推荐
- 如何在C语言编程中调用linux系统终端下的命令
- linux 下c语言调用终端命令
- linux 下c语言调用终端命令
- linux 下c语言调用终端命令----笛风读书笔记系列
- linux下如何用c语言调用shell命令
- linux下如何用c语言调用shell命令
- Linux下调用系统终端命令popen()
- Linux-c语言调用shell命令
- linux C程序中调用shell终端的命令
- linux下如何用c语言调用shell命令
- linux下如何用c语言调用shell命令
- linux下如何用c语言调用shell命令http://blog.csdn.net/hzhsan/article/details/7989921
- linux C程序中调用shell终端的命令
- C语言基础(1.linux终端命令2.gcc过程3.命令行模式和输入模式切换4.命令行一些命令5.函数(三要素)6.基本的C语言代码结构)
- linux下如何用c语言调用shell命令-转
- Linux下用C语言调用Shell命令
- linux下怎样用c语言调用shell命令
- c语言调用Linux的命令
- linux下如何用c语言调用shell命令
- linux下如何用c语言调用shell命令