系统在以下程序中调用了什么?

时间:2016-02-27 19:28:20

标签: c

read(fileno(stdin), passwd, 1024);
if(strcmp(passwd, real_password) == 0) {
    printf("\n\nWelcome back :)\n\n~$ ");
    fflush(stdout);
    system("/bin/bash -p");

所以我有这个程序,我想知道系统(" / bin / bash -p")调用程序做了什么?

1 个答案:

答案 0 :(得分:0)

它使用参数bash执行-p。根据代码,传递路径为/bin/bash

检查system()的参考号:

  

说明

   The system() library function uses fork(2) to create a child process
   that executes the shell command specified in command using execl(3)
   as follows:

       execl("/bin/sh", "sh", "-c", command, (char *) 0);

   system() returns after the command has been completed.

-p参数,根据bash的参考:

  

-p选项将输出格式更改为POSIX

指定的格式