亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? shell.c

?? android-w.song.android.widget
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* shell.c -- GNU's idea of the POSIX shell specification. *//* Copyright (C) 1987-2010 Free Software Foundation, Inc.   This file is part of GNU Bash, the Bourne Again SHell.   Bash is free software: you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation, either version 3 of the License, or   (at your option) any later version.   Bash is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with Bash.  If not, see <http://www.gnu.org/licenses/>.*//*  Birthdate:  Sunday, January 10th, 1988.  Initial author: Brian Fox*/#define INSTALL_DEBUG_MODE#include "config.h"#include "bashtypes.h"#if !defined (_MINIX) && defined (HAVE_SYS_FILE_H)#  include <sys/file.h>#endif#include "posixstat.h"#include "posixtime.h"#include "bashansi.h"#include <stdio.h>#include <signal.h>#include <errno.h>#include "filecntl.h"#include <pwd.h>#if defined (HAVE_UNISTD_H)#  include <unistd.h>#endif#include "bashintl.h"#define NEED_SH_SETLINEBUF_DECL		/* used in externs.h */#include "shell.h"#include "flags.h"#include "trap.h"#include "mailcheck.h"#include "builtins.h"#include "builtins/common.h"#if defined (JOB_CONTROL)#include "jobs.h"#endif /* JOB_CONTROL */#include "input.h"#include "execute_cmd.h"#include "findcmd.h"#if defined (USING_BASH_MALLOC) && defined (DEBUG) && !defined (DISABLE_MALLOC_WRAPPERS)#  include <malloc/shmalloc.h>#endif#if defined (HISTORY)#  include "bashhist.h"#  include <readline/history.h>#endif#if defined (READLINE)#  include "bashline.h"#endif#include <tilde/tilde.h>#include <glob/strmatch.h>#if defined (__OPENNT)#  include <opennt/opennt.h>#endif#if !defined (HAVE_GETPW_DECLS)extern struct passwd *getpwuid ();#endif /* !HAVE_GETPW_DECLS */#if !defined (errno)extern int errno;#endif#if defined (NO_MAIN_ENV_ARG)extern char **environ;	/* used if no third argument to main() */#endifextern char *dist_version, *release_status;extern int patch_level, build_version;extern int shell_level;extern int subshell_environment;extern int last_command_exit_value;extern int line_number;extern int expand_aliases;extern int array_needs_making;extern int gnu_error_format;extern char *primary_prompt, *secondary_prompt;extern char *this_command_name;/* Non-zero means that this shell has already been run; i.e. you should   call shell_reinitialize () if you need to start afresh. */int shell_initialized = 0;COMMAND *global_command = (COMMAND *)NULL;/* Information about the current user. */struct user_info current_user ={  (uid_t)-1, (uid_t)-1, (gid_t)-1, (gid_t)-1,  (char *)NULL, (char *)NULL, (char *)NULL};/* The current host's name. */char *current_host_name = (char *)NULL;/* Non-zero means that this shell is a login shell.   Specifically:   0 = not login shell.   1 = login shell from getty (or equivalent fake out)  -1 = login shell from "--login" (or -l) flag.  -2 = both from getty, and from flag. */int login_shell = 0;/* Non-zero means that at this moment, the shell is interactive.  In   general, this means that the shell is at this moment reading input   from the keyboard. */int interactive = 0;/* Non-zero means that the shell was started as an interactive shell. */int interactive_shell = 0;/* Non-zero means to send a SIGHUP to all jobs when an interactive login   shell exits. */int hup_on_exit = 0;/* Non-zero means to list status of running and stopped jobs at shell exit */int check_jobs_at_exit = 0;/* Non-zero means to change to a directory name supplied as a command name */int autocd = 0;/* Tells what state the shell was in when it started:	0 = non-interactive shell script	1 = interactive	2 = -c command	3 = wordexp evaluation   This is a superset of the information provided by interactive_shell.*/int startup_state = 0;/* Special debugging helper. */int debugging_login_shell = 0;/* The environment that the shell passes to other commands. */char **shell_environment;/* Non-zero when we are executing a top-level command. */int executing = 0;/* The number of commands executed so far. */int current_command_number = 1;/* Non-zero is the recursion depth for commands. */int indirection_level = 0;/* The name of this shell, as taken from argv[0]. */char *shell_name = (char *)NULL;/* time in seconds when the shell was started */time_t shell_start_time;/* Are we running in an emacs shell window? */int running_under_emacs;/* Do we have /dev/fd? */#ifdef HAVE_DEV_FDint have_devfd = HAVE_DEV_FD;#elseint have_devfd = 0;#endif/* The name of the .(shell)rc file. */static char *bashrc_file = "~/.bashrc";/* Non-zero means to act more like the Bourne shell on startup. */static int act_like_sh;/* Non-zero if this shell is being run by `su'. */static int su_shell;/* Non-zero if we have already expanded and sourced $ENV. */static int sourced_env;/* Is this shell running setuid? */static int running_setuid;/* Values for the long-winded argument names. */static int debugging;			/* Do debugging things. */static int no_rc;			/* Don't execute ~/.bashrc */static int no_profile;			/* Don't execute .profile */static int do_version;			/* Display interesting version info. */static int make_login_shell;		/* Make this shell be a `-bash' shell. */static int want_initial_help;		/* --help option */int debugging_mode = 0;		/* In debugging mode with --debugger */int no_line_editing = 0;	/* Don't do fancy line editing. */int dump_translatable_strings;	/* Dump strings in $"...", don't execute. */int dump_po_strings;		/* Dump strings in $"..." in po format */int wordexp_only = 0;		/* Do word expansion only */int protected_mode = 0;		/* No command substitution with --wordexp */#if defined (STRICT_POSIX)int posixly_correct = 1;	/* Non-zero means posix.2 superset. */#elseint posixly_correct = 0;	/* Non-zero means posix.2 superset. */#endif/* Some long-winded argument names.  These are obviously new. */#define Int 1#define Charp 2static const struct {  const char *name;  int type;  int *int_value;  char **char_value;} long_args[] = {  { "debug", Int, &debugging, (char **)0x0 },#if defined (DEBUGGER)  { "debugger", Int, &debugging_mode, (char **)0x0 },#endif  { "dump-po-strings", Int, &dump_po_strings, (char **)0x0 },  { "dump-strings", Int, &dump_translatable_strings, (char **)0x0 },  { "help", Int, &want_initial_help, (char **)0x0 },  { "init-file", Charp, (int *)0x0, &bashrc_file },  { "login", Int, &make_login_shell, (char **)0x0 },  { "noediting", Int, &no_line_editing, (char **)0x0 },  { "noprofile", Int, &no_profile, (char **)0x0 },  { "norc", Int, &no_rc, (char **)0x0 },  { "posix", Int, &posixly_correct, (char **)0x0 },  { "protected", Int, &protected_mode, (char **)0x0 },  { "rcfile", Charp, (int *)0x0, &bashrc_file },#if defined (RESTRICTED_SHELL)  { "restricted", Int, &restricted, (char **)0x0 },#endif  { "verbose", Int, &echo_input_at_read, (char **)0x0 },  { "version", Int, &do_version, (char **)0x0 },#if defined (WORDEXP_OPTION)  { "wordexp", Int, &wordexp_only, (char **)0x0 },#endif  { (char *)0x0, Int, (int *)0x0, (char **)0x0 }};/* These are extern so execute_simple_command can set them, and then   longjmp back to main to execute a shell script, instead of calling   main () again and resulting in indefinite, possibly fatal, stack   growth. */procenv_t subshell_top_level;int subshell_argc;char **subshell_argv;char **subshell_envp;char *exec_argv0;#if defined (BUFFERED_INPUT)/* The file descriptor from which the shell is reading input. */int default_buffered_input = -1;#endif/* The following two variables are not static so they can show up in $-. */int read_from_stdin;		/* -s flag supplied */int want_pending_command;	/* -c flag supplied *//* This variable is not static so it can be bound to $BASH_EXECUTION_STRING */char *command_execution_string;	/* argument to -c option */int malloc_trace_at_exit = 0;static int shell_reinitialized = 0;static FILE *default_input;static STRING_INT_ALIST *shopt_alist;static int shopt_ind = 0, shopt_len = 0;static int parse_long_options __P((char **, int, int));static int parse_shell_options __P((char **, int, int));static int bind_args __P((char **, int, int, int));static void start_debugger __P((void));static void add_shopt_to_alist __P((char *, int));static void run_shopt_alist __P((void));static void execute_env_file __P((char *));static void run_startup_files __P((void));static int open_shell_script __P((char *));static void set_bash_input __P((void));static int run_one_command __P((char *));#if defined (WORDEXP_OPTION)static int run_wordexp __P((char *));#endifstatic int uidget __P((void));static void init_interactive __P((void));static void init_noninteractive __P((void));static void init_interactive_script __P((void));static void set_shell_name __P((char *));static void shell_initialize __P((void));static void shell_reinitialize __P((void));static void show_shell_usage __P((FILE *, int));#ifdef __CYGWIN__static void_cygwin32_check_tmp (){  struct stat sb;  if (stat ("/tmp", &sb) < 0)    internal_warning (_("could not find /tmp, please create!"));  else    {      if (S_ISDIR (sb.st_mode) == 0)	internal_warning (_("/tmp must be a valid directory name"));    }}#endif /* __CYGWIN__ */#if defined (NO_MAIN_ENV_ARG)/* systems without third argument to main() */intmain (argc, argv)     int argc;     char **argv;#else /* !NO_MAIN_ENV_ARG */intmain (argc, argv, env)     int argc;     char **argv, **env;#endif /* !NO_MAIN_ENV_ARG */{  register int i;  int code, old_errexit_flag;#if defined (RESTRICTED_SHELL)  int saverst;#endif  volatile int locally_skip_execution;  volatile int arg_index, top_level_arg_index;#ifdef __OPENNT  char **env;  env = environ;#endif /* __OPENNT */  USE_VAR(argc);  USE_VAR(argv);  USE_VAR(env);  USE_VAR(code);  USE_VAR(old_errexit_flag);#if defined (RESTRICTED_SHELL)  USE_VAR(saverst);#endif  /* Catch early SIGINTs. */  code = setjmp (top_level);  if (code)    exit (2);  xtrace_init ();#if defined (USING_BASH_MALLOC) && defined (DEBUG) && !defined (DISABLE_MALLOC_WRAPPERS)#  if 1  malloc_set_register (1);#  endif#endif  check_dev_tty ();#ifdef __CYGWIN__  _cygwin32_check_tmp ();#endif /* __CYGWIN__ */  /* Wait forever if we are debugging a login shell. */  while (debugging_login_shell) sleep (3);  set_default_locale ();  running_setuid = uidget ();  if (getenv ("POSIXLY_CORRECT") || getenv ("POSIX_PEDANTIC"))    posixly_correct = 1;#if defined (USE_GNU_MALLOC_LIBRARY)  mcheck (programming_error, (void (*) ())0);#endif /* USE_GNU_MALLOC_LIBRARY */  if (setjmp (subshell_top_level))    {      argc = subshell_argc;      argv = subshell_argv;      env = subshell_envp;      sourced_env = 0;    }  shell_reinitialized = 0;  /* Initialize `local' variables for all `invocations' of main (). */  arg_index = 1;  if (arg_index > argc)    arg_index = argc;  command_execution_string = (char *)NULL;  want_pending_command = locally_skip_execution = read_from_stdin = 0;  default_input = stdin;#if defined (BUFFERED_INPUT)  default_buffered_input = -1;#endif  /* Fix for the `infinite process creation' bug when running shell scripts     from startup files on System V. */  login_shell = make_login_shell = 0;  /* If this shell has already been run, then reinitialize it to a     vanilla state. */  if (shell_initialized || shell_name)    {      /* Make sure that we do not infinitely recurse as a login shell. */      if (*shell_name == '-')	shell_name++;      shell_reinitialize ();      if (setjmp (top_level))	exit (2);    }  shell_environment = env;  set_shell_name (argv[0]);  shell_start_time = NOW;	/* NOW now defined in general.h */  /* Parse argument flags from the input line. */  /* Find full word arguments first. */  arg_index = parse_long_options (argv, arg_index, argc);  if (want_initial_help)    {      show_shell_usage (stdout, 1);      exit (EXECUTION_SUCCESS);    }  if (do_version)    {      show_shell_version (1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91久久精品一区二区二区| 欧美亚洲综合另类| 亚洲人成影院在线观看| 欧美猛男男办公室激情| 亚洲一区在线视频| 在线免费观看日本一区| 美女爽到高潮91| 欧美国产日韩一二三区| 成人黄色软件下载| 麻豆国产精品官网| 亚洲伦理在线免费看| 精品国产一区二区在线观看| 99久精品国产| 麻豆精品在线观看| 一区二区三区在线免费观看| 欧美大度的电影原声| 日本高清免费不卡视频| 精品一二三四在线| 一个色在线综合| 欧美国产日产图区| 日韩一区二区电影网| 91毛片在线观看| 国产最新精品精品你懂的| 亚洲一二三区视频在线观看| 国产亚洲精品bt天堂精选| 69堂精品视频| 日本道精品一区二区三区| 狠狠色狠狠色综合日日91app| 中文av一区二区| 欧美一区二区三区日韩| 一本色道久久综合亚洲91 | 欧美日韩久久久| 丁香网亚洲国际| 美国毛片一区二区| 亚洲欧美欧美一区二区三区| 欧美成人伊人久久综合网| 在线精品观看国产| 99精品视频一区二区三区| 国模冰冰炮一区二区| 蜜桃一区二区三区四区| 一区二区免费在线播放| 国产精品视频一二三| 国产亚洲va综合人人澡精品| 欧美va天堂va视频va在线| 欧美区一区二区三区| 欧美中文一区二区三区| 成人久久18免费网站麻豆 | 一区二区在线观看视频 | 久久久久久久久久电影| 日韩一区二区在线看片| 5566中文字幕一区二区电影| 欧美视频在线一区| 91国在线观看| 欧美综合亚洲图片综合区| 色88888久久久久久影院野外| www.亚洲人| 91网上在线视频| 97se亚洲国产综合自在线观| 97精品久久久午夜一区二区三区| 成人午夜又粗又硬又大| 精品一区二区av| 国产一区 二区| 国产xxx精品视频大全| 成人动漫中文字幕| 99久久久精品| 91官网在线免费观看| 色中色一区二区| 欧美性大战久久久久久久| 色94色欧美sute亚洲线路一ni| 色先锋aa成人| 欧美日韩视频专区在线播放| 欧美日韩aaa| 欧美电影免费观看高清完整版| 精品日韩99亚洲| 久久精品亚洲精品国产欧美| 国产精品蜜臀在线观看| 夜夜嗨av一区二区三区| 丝袜美腿亚洲一区| 久久国产生活片100| 蜜臀av性久久久久蜜臀av麻豆| 日本视频中文字幕一区二区三区| 亚洲小说春色综合另类电影| 亚洲视频香蕉人妖| 亚洲第一福利视频在线| 老汉av免费一区二区三区| 日韩国产欧美在线视频| 国内国产精品久久| 国产一区二区毛片| 国产一区二区三区免费观看| 国产iv一区二区三区| 久久精品久久99精品久久| 成人午夜大片免费观看| 一本一道波多野结衣一区二区| 欧美日韩国产天堂| 久久天天做天天爱综合色| 欧美国产乱子伦 | 日韩成人av影视| 国产精品888| 欧美日韩精品高清| 日本一区二区三区视频视频| 国产精品成人免费在线| 日本网站在线观看一区二区三区| 成人国产在线观看| 这里只有精品电影| 亚洲天堂a在线| 精油按摩中文字幕久久| 93久久精品日日躁夜夜躁欧美| 3d动漫精品啪啪| 亚洲欧洲日产国产综合网| 免费看日韩a级影片| 91亚洲永久精品| 8v天堂国产在线一区二区| 精品嫩草影院久久| 亚洲精品你懂的| 成人精品免费网站| 欧美不卡一区二区| 一区二区三区丝袜| 成人一级片网址| 精品久久国产老人久久综合| 一区二区免费在线播放| 国产精品888| 精品国产免费一区二区三区四区| 亚洲综合色婷婷| 99视频精品全部免费在线| 精品国偷自产国产一区| 视频在线观看国产精品| 色久优优欧美色久优优| 国产免费观看久久| 精品无人码麻豆乱码1区2区| 欧美日韩中文字幕一区| ...av二区三区久久精品| 国产在线国偷精品免费看| 717成人午夜免费福利电影| 亚洲午夜免费电影| 99热在这里有精品免费| 亚洲国产精品成人综合色在线婷婷| 一区二区三区日本| 国产成人免费在线视频| 久久精品一二三| 国产传媒一区在线| 久久嫩草精品久久久精品| 蜜桃91丨九色丨蝌蚪91桃色| 欧美久久久久中文字幕| 亚洲a一区二区| 欧美三级一区二区| 亚洲综合在线第一页| 欧美亚洲综合网| 亚洲午夜免费视频| 欧美乱熟臀69xxxxxx| 亚洲成a天堂v人片| 欧美剧情片在线观看| 日本美女视频一区二区| 欧美一区午夜精品| 久久精品国产亚洲a| 日韩精品中文字幕一区二区三区| 开心九九激情九九欧美日韩精美视频电影| 91超碰这里只有精品国产| 日本aⅴ亚洲精品中文乱码| 67194成人在线观看| 蜜桃一区二区三区在线观看| 精品91自产拍在线观看一区| 国产最新精品精品你懂的| 国产三级三级三级精品8ⅰ区| 国产91精品在线观看| 国产精品成人在线观看| 色综合色狠狠综合色| 亚洲国产成人91porn| 日韩欧美国产一二三区| 国产一区二区在线看| 日本一区二区三区四区| 一本到一区二区三区| 天天综合网天天综合色| 在线播放日韩导航| 国产激情一区二区三区| **网站欧美大片在线观看| 欧美日韩日日骚| 精东粉嫩av免费一区二区三区| 国产欧美一区二区在线| 91免费小视频| 日本不卡不码高清免费观看| 久久综合九色欧美综合狠狠| 国产精品系列在线观看| 亚洲欧美国产三级| 日韩欧美三级在线| 99久久免费精品高清特色大片| 亚洲国产成人tv| 国产亚洲欧美日韩日本| 欧美性大战久久久久久久| 国产一区二区在线观看免费| 亚洲欧美激情视频在线观看一区二区三区 | 国产一区二区日韩精品| 一区二区三区高清在线| 久久亚洲综合av| 欧美年轻男男videosbes| 国产高清精品久久久久| 性欧美大战久久久久久久久| 欧美国产日韩亚洲一区| 日韩欧美高清dvd碟片| 日本久久电影网| 不卡的看片网站|