- 论坛徽章:
- 0
|
程序片段:
++++++++++++++++++++++++++++++++++++++++
int main(int argc,char *argv[],char *envp[]) {
char name[20];
char *p;
scanf("%s",name);
p=name;
printf("\n");
execl("/usr/bin/openssl","openssl","passwd","-1",p,0);//此处忽略fork不考虑先。
return 0;}
+++++++++++++++++++++++++++++++++++++++++
这里execl成功无返回。但是我把stdout内容保存下来存起来,然后插入到数据库的password中去。
不知道该怎么操作呢。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
int main()
{
FILE *fp;
char buf[100];
char name[30];
memset(buf,'\0',sizeof(buf));
scanf("%s",name);
strcpy(buf,"openssl passwd -1 ");
strcat(buf,name);
fp=popen(buf,"w");//fp=popen(buf,"r");
printf("\n");
pclose(fp);
return 0;
} |
执行:
root@mail:/media/addpsqlusr/pipe_fork# ./tmp
jjkhf
$1$2TqVfMI6$c9V.2KbyP6/AayOg9Ocdd1
|
这里我们看到换行打印到运行结果前,是不是说子进程运行在父进程之后的呢?
[ 本帖最后由 hylinux 于 2008-1-31 23:20 编辑 ] |
|