⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 system.c

📁 linux进程跟踪的工具和源代码
💻 C
📖 第 1 页 / 共 4 页
字号:
		}		tprintf("}");	}	return 0;}static struct xlat sysconflimits[] = {#ifdef	_SC_ARG_MAX	{ _SC_ARG_MAX,	"_SC_ARG_MAX"	},	/* space for argv & envp */#endif#ifdef	_SC_CHILD_MAX	{ _SC_CHILD_MAX,	"_SC_CHILD_MAX"	},	/* maximum children per process??? */#endif#ifdef	_SC_CLK_TCK	{ _SC_CLK_TCK,	"_SC_CLK_TCK"	},	/* clock ticks/sec */#endif#ifdef	_SC_NGROUPS_MAX	{ _SC_NGROUPS_MAX,	"_SC_NGROUPS_MAX"	},	/* number of groups if multple supp. */#endif#ifdef	_SC_OPEN_MAX	{ _SC_OPEN_MAX,	"_SC_OPEN_MAX"	},	/* max open files per process */#endif#ifdef	_SC_JOB_CONTROL	{ _SC_JOB_CONTROL,	"_SC_JOB_CONTROL"	},	/* do we have job control */#endif#ifdef	_SC_SAVED_IDS	{ _SC_SAVED_IDS,	"_SC_SAVED_IDS"	},	/* do we have saved uid/gids */#endif#ifdef	_SC_VERSION	{ _SC_VERSION,	"_SC_VERSION"	},	/* POSIX version supported */#endif	{ 0,		NULL		},};intsys_sysconf(tcp)struct tcb *tcp;{	if (entering(tcp)) {		printxval(sysconflimits, tcp->u_arg[0], "_SC_???");	}	return 0;}#endif /* SUNOS4 */#if defined(SUNOS4) || defined(FREEBSD)static struct xlat pathconflimits[] = {#ifdef	_PC_LINK_MAX	{ _PC_LINK_MAX,	"_PC_LINK_MAX"	},	/* max links to file/dir */#endif#ifdef	_PC_MAX_CANON	{ _PC_MAX_CANON,	"_PC_MAX_CANON"	},	/* max line length */#endif#ifdef	_PC_MAX_INPUT	{ _PC_MAX_INPUT,	"_PC_MAX_INPUT"	},	/* max "packet" to a tty device */#endif#ifdef	_PC_NAME_MAX	{ _PC_NAME_MAX,	"_PC_NAME_MAX"	},	/* max pathname component length */#endif#ifdef	_PC_PATH_MAX	{ _PC_PATH_MAX,	"_PC_PATH_MAX"	},	/* max pathname length */#endif#ifdef	_PC_PIPE_BUF	{ _PC_PIPE_BUF,	"_PC_PIPE_BUF"	},	/* size of a pipe */#endif#ifdef	_PC_CHOWN_RESTRICTED	{ _PC_CHOWN_RESTRICTED,	"_PC_CHOWN_RESTRICTED"	},	/* can we give away files */#endif#ifdef	_PC_NO_TRUNC	{ _PC_NO_TRUNC,	"_PC_NO_TRUNC"	},	/* trunc or error on >NAME_MAX */#endif#ifdef	_PC_VDISABLE	{ _PC_VDISABLE,	"_PC_VDISABLE"	},	/* best char to shut off tty c_cc */#endif	{ 0,		NULL		},};intsys_pathconf(tcp)struct tcb *tcp;{	if (entering(tcp)) {		printstr(tcp, tcp->u_arg[0], -1);		tprintf(", ");		printxval(pathconflimits, tcp->u_arg[1], "_PC_???");	}	return 0;}intsys_fpathconf(tcp)struct tcb *tcp;{	if (entering(tcp)) {		tprintf("%lu, ", tcp->u_arg[0]);		printxval(pathconflimits, tcp->u_arg[1], "_PC_???");	}	return 0;}#endif /* SUNOS4 || FREEBSD */#ifdef SVR4#ifdef HAVE_SYS_SYSCONFIG_H#include <sys/sysconfig.h>#endif /* HAVE_SYS_SYSCONFIG_H */#include <sys/mount.h>#include <sys/systeminfo.h>#include <sys/utsname.h>static struct xlat sysconfig_options[] = {#ifdef _CONFIG_NGROUPS	{ _CONFIG_NGROUPS,		"_CONFIG_NGROUPS"		},#endif#ifdef _CONFIG_CHILD_MAX	{ _CONFIG_CHILD_MAX,		"_CONFIG_CHILD_MAX"		},#endif#ifdef _CONFIG_OPEN_FILES	{ _CONFIG_OPEN_FILES,		"_CONFIG_OPEN_FILES"		},#endif#ifdef _CONFIG_POSIX_VER	{ _CONFIG_POSIX_VER,		"_CONFIG_POSIX_VER"		},#endif#ifdef _CONFIG_PAGESIZE	{ _CONFIG_PAGESIZE,		"_CONFIG_PAGESIZE"		},#endif#ifdef _CONFIG_CLK_TCK	{ _CONFIG_CLK_TCK,		"_CONFIG_CLK_TCK"		},#endif#ifdef _CONFIG_XOPEN_VER	{ _CONFIG_XOPEN_VER,		"_CONFIG_XOPEN_VER"		},#endif#ifdef _CONFIG_PROF_TCK	{ _CONFIG_PROF_TCK,		"_CONFIG_PROF_TCK"		},#endif#ifdef _CONFIG_NPROC_CONF	{ _CONFIG_NPROC_CONF,		"_CONFIG_NPROC_CONF"		},#endif#ifdef _CONFIG_NPROC_ONLN	{ _CONFIG_NPROC_ONLN,		"_CONFIG_NPROC_ONLN"		},#endif#ifdef _CONFIG_AIO_LISTIO_MAX	{ _CONFIG_AIO_LISTIO_MAX,	"_CONFIG_AIO_LISTIO_MAX"	},#endif#ifdef _CONFIG_AIO_MAX	{ _CONFIG_AIO_MAX,		"_CONFIG_AIO_MAX"		},#endif#ifdef _CONFIG_AIO_PRIO_DELTA_MAX	{ _CONFIG_AIO_PRIO_DELTA_MAX,	"_CONFIG_AIO_PRIO_DELTA_MAX"	},#endif#ifdef _CONFIG_CONFIG_DELAYTIMER_MAX	{ _CONFIG_DELAYTIMER_MAX,	"_CONFIG_DELAYTIMER_MAX"	},#endif#ifdef _CONFIG_MQ_OPEN_MAX	{ _CONFIG_MQ_OPEN_MAX,		"_CONFIG_MQ_OPEN_MAX"		},#endif#ifdef _CONFIG_MQ_PRIO_MAX	{ _CONFIG_MQ_PRIO_MAX,		"_CONFIG_MQ_PRIO_MAX"		},#endif#ifdef _CONFIG_RTSIG_MAX	{ _CONFIG_RTSIG_MAX,		"_CONFIG_RTSIG_MAX"		},#endif#ifdef _CONFIG_SEM_NSEMS_MAX	{ _CONFIG_SEM_NSEMS_MAX,	"_CONFIG_SEM_NSEMS_MAX"		},#endif#ifdef _CONFIG_SEM_VALUE_MAX	{ _CONFIG_SEM_VALUE_MAX,	"_CONFIG_SEM_VALUE_MAX"		},#endif#ifdef _CONFIG_SIGQUEUE_MAX	{ _CONFIG_SIGQUEUE_MAX,		"_CONFIG_SIGQUEUE_MAX"		},#endif#ifdef _CONFIG_SIGRT_MIN	{ _CONFIG_SIGRT_MIN,		"_CONFIG_SIGRT_MIN"		},#endif#ifdef _CONFIG_SIGRT_MAX	{ _CONFIG_SIGRT_MAX,		"_CONFIG_SIGRT_MAX"		},#endif#ifdef _CONFIG_TIMER_MAX	{ _CONFIG_TIMER_MAX,		"_CONFIG_TIMER_MAX"		},#endif#ifdef _CONFIG_CONFIG_PHYS_PAGES	{ _CONFIG_PHYS_PAGES,		"_CONFIG_PHYS_PAGES"		},#endif#ifdef _CONFIG_AVPHYS_PAGES	{ _CONFIG_AVPHYS_PAGES,		"_CONFIG_AVPHYS_PAGES"		},#endif	{ 0,				NULL				},};intsys_sysconfig(tcp)struct tcb *tcp;{	if (entering(tcp))		printxval(sysconfig_options, tcp->u_arg[0], "_CONFIG_???");	return 0;}static struct xlat sysinfo_options[] = {	{ SI_SYSNAME,		"SI_SYSNAME"		},	{ SI_HOSTNAME,		"SI_HOSTNAME"		},	{ SI_RELEASE,		"SI_RELEASE"		},	{ SI_VERSION,		"SI_VERSION"		},	{ SI_MACHINE,		"SI_MACHINE"		},	{ SI_ARCHITECTURE,	"SI_ARCHITECTURE"	},	{ SI_HW_SERIAL,		"SI_HW_SERIAL"		},	{ SI_HW_PROVIDER,	"SI_HW_PROVIDER"	},	{ SI_SRPC_DOMAIN,	"SI_SRPC_DOMAIN"	},#ifdef SI_SET_HOSTNAME	{ SI_SET_HOSTNAME,	"SI_SET_HOSTNAME"	},#endif#ifdef SI_SET_SRPC_DOMAIN	{ SI_SET_SRPC_DOMAIN,	"SI_SET_SRPC_DOMAIN"	},#endif#ifdef SI_SET_KERB_REALM	{ SI_SET_KERB_REALM,	"SI_SET_KERB_REALM"	},#endif#ifdef 	SI_KERB_REALM	{ SI_KERB_REALM,	"SI_KERB_REALM"		},#endif	{ 0,			NULL			},};intsys_sysinfo(tcp)struct tcb *tcp;{	if (entering(tcp)) {		printxval(sysinfo_options, tcp->u_arg[0], "SI_???");		tprintf(", ");	}	else {		/* Technically some calls write values.  So what. */		if (syserror(tcp))			tprintf("%#lx", tcp->u_arg[1]);		else			printpath(tcp, tcp->u_arg[1]);		tprintf(", %lu", tcp->u_arg[2]);	}	return 0;}#ifdef MIPS#include <sys/syssgi.h>static struct xlat syssgi_options[] = {	{ SGI_SYSID,		"SGI_SYSID"		},#ifdef SGI_RDUBLK	{ SGI_RDUBLK,		"SGI_RDUBLK"		},#endif	{ SGI_TUNE,		"SGI_TUNE"		},	{ SGI_IDBG,		"SGI_IDBG"		},	{ SGI_INVENT,		"SGI_INVENT"		},	{ SGI_RDNAME,		"SGI_RDNAME"		},	{ SGI_SETLED,		"SGI_SETLED"		},	{ SGI_SETNVRAM,		"SGI_SETNVRAM"		},	{ SGI_GETNVRAM,		"SGI_GETNVRAM"		},	{ SGI_QUERY_FTIMER,	"SGI_QUERY_FTIMER"	},	{ SGI_QUERY_CYCLECNTR,	"SGI_QUERY_CYCLECNTR"	},	{ SGI_PROCSZ,		"SGI_PROCSZ"		},	{ SGI_SIGACTION,	"SGI_SIGACTION"		},	{ SGI_SIGPENDING,	"SGI_SIGPENDING"	},	{ SGI_SIGPROCMASK,	"SGI_SIGPROCMASK"	},	{ SGI_SIGSUSPEND,	"SGI_SIGSUSPEND"	},	{ SGI_SETSID,		"SGI_SETSID"		},	{ SGI_SETPGID,		"SGI_SETPGID"		},	{ SGI_SYSCONF,		"SGI_SYSCONF"		},	{ SGI_WAIT4,		"SGI_WAIT4"		},	{ SGI_PATHCONF,		"SGI_PATHCONF"		},	{ SGI_READB,		"SGI_READB"		},	{ SGI_WRITEB,		"SGI_WRITEB"		},	{ SGI_SETGROUPS,	"SGI_SETGROUPS"		},	{ SGI_GETGROUPS,	"SGI_GETGROUPS"		},	{ SGI_SETTIMEOFDAY,	"SGI_SETTIMEOFDAY"	},	{ SGI_SETTIMETRIM,	"SGI_SETTIMETRIM"	},	{ SGI_GETTIMETRIM,	"SGI_GETTIMETRIM"	},	{ SGI_SPROFIL,		"SGI_SPROFIL"		},	{ SGI_RUSAGE,		"SGI_RUSAGE"		},	{ SGI_SIGSTACK,		"SGI_SIGSTACK"		},	{ SGI_SIGSTATUS,	"SGI_SIGSTATUS"		},	{ SGI_NETPROC,		"SGI_NETPROC"		},	{ SGI_SIGALTSTACK,	"SGI_SIGALTSTACK"	},	{ SGI_BDFLUSHCNT,	"SGI_BDFLUSHCNT"	},	{ SGI_SSYNC,		"SGI_SSYNC"		},	{ SGI_NFSCNVT,		"SGI_NFSCNVT"		},	{ SGI_GETPGID,		"SGI_GETPGID"		},	{ SGI_GETSID,		"SGI_GETSID"		},	{ SGI_IOPROBE,		"SGI_IOPROBE"		},	{ SGI_CONFIG,		"SGI_CONFIG"		},	{ SGI_ELFMAP,		"SGI_ELFMAP"		},	{ SGI_MCONFIG,		"SGI_MCONFIG"		},	{ SGI_GETPLABEL,	"SGI_GETPLABEL"		},	{ SGI_SETPLABEL,	"SGI_SETPLABEL"		},	{ SGI_GETLABEL,		"SGI_GETLABEL"		},	{ SGI_SETLABEL,		"SGI_SETLABEL"		},	{ SGI_SATREAD,		"SGI_SATREAD"		},	{ SGI_SATWRITE,		"SGI_SATWRITE"		},	{ SGI_SATCTL,		"SGI_SATCTL"		},	{ SGI_LOADATTR,		"SGI_LOADATTR"		},	{ SGI_UNLOADATTR,	"SGI_UNLOADATTR"	},#ifdef SGI_RECVLMSG	{ SGI_RECVLMSG,		"SGI_RECVLMSG"		},#endif	{ SGI_PLANGMOUNT,	"SGI_PLANGMOUNT"	},	{ SGI_GETPSOACL,	"SGI_GETPSOACL"		},	{ SGI_SETPSOACL,	"SGI_SETPSOACL"		},#ifdef SGI_EAG_GET_ATTR	{ SGI_EAG_GET_ATTR,	"SGI_EAG_GET_ATTR"	},#endif#ifdef SGI_EAG_SET_ATTR	{ SGI_EAG_SET_ATTR,	"SGI_EAG_SET_ATTR"	},#endif#ifdef SGI_EAG_GET_PROCATTR	{ SGI_EAG_GET_PROCATTR,	"SGI_EAG_GET_PROCATTR"	},#endif#ifdef SGI_EAG_SET_PROCATTR	{ SGI_EAG_SET_PROCATTR,	"SGI_EAG_SET_PROCATTR"	},#endif#ifdef SGI_FREVOKE	{ SGI_FREVOKE,		"SGI_FREVOKE"		},#endif#ifdef SGI_SBE_GET_INFO	{ SGI_SBE_GET_INFO,	"SGI_SBE_GET_INFO"	},#endif#ifdef SGI_SBE_CLR_INFO	{ SGI_SBE_CLR_INFO,	"SGI_SBE_CLR_INFO"	},#endif	{ SGI_RMI_FIXECC,	"SGI_RMI_FIXECC"	},	{ SGI_R4K_CERRS,	"SGI_R4K_CERRS"		},	{ SGI_GET_EVCONF,	"SGI_GET_EVCONF"	},	{ SGI_MPCWAROFF,	"SGI_MPCWAROFF"		},	{ SGI_SET_AUTOPWRON,	"SGI_SET_AUTOPWRON"	},	{ SGI_SPIPE,		"SGI_SPIPE"		},	{ SGI_SYMTAB,		"SGI_SYMTAB"		},#ifdef SGI_SET_FPDEBUG	{ SGI_SET_FPDEBUG,	"SGI_SET_FPDEBUG"	},#endif#ifdef SGI_SET_FP_PRECISE	{ SGI_SET_FP_PRECISE,	"SGI_SET_FP_PRECISE"	},#endif	{ SGI_TOSSTSAVE,	"SGI_TOSSTSAVE"		},	{ SGI_FDHI,		"SGI_FDHI"		},#ifdef SGI_SET_CONFIG_SMM	{ SGI_SET_CONFIG_SMM,	"SGI_SET_CONFIG_SMM"	},#endif#ifdef SGI_SET_FP_PRESERVE	{ SGI_SET_FP_PRESERVE,	"SGI_SET_FP_PRESERVE"	},#endif	{ SGI_MINRSS,		"SGI_MINRSS"		},#ifdef SGI_GRIO	{ SGI_GRIO,		"SGI_GRIO"		},#endif#ifdef SGI_XLV_SET_TAB	{ SGI_XLV_SET_TAB,	"SGI_XLV_SET_TAB"	},#endif#ifdef SGI_XLV_GET_TAB	{ SGI_XLV_GET_TAB,	"SGI_XLV_GET_TAB"	},#endif#ifdef SGI_GET_FP_PRECISE	{ SGI_GET_FP_PRECISE,	"SGI_GET_FP_PRECISE"	},#endif#ifdef SGI_GET_CONFIG_SMM		{ SGI_GET_CONFIG_SMM,	"SGI_GET_CONFIG_SMM"	},#endif#ifdef SGI_FP_IMPRECISE_SUPP		{ SGI_FP_IMPRECISE_SUPP,"SGI_FP_IMPRECISE_SUPP"	},#endif#ifdef SGI_CONFIG_NSMM_SUPP		{ SGI_CONFIG_NSMM_SUPP,	"SGI_CONFIG_NSMM_SUPP"	},#endif#ifdef SGI_RT_TSTAMP_CREATE    	{ SGI_RT_TSTAMP_CREATE,	"SGI_RT_TSTAMP_CREATE"	},#endif#ifdef SGI_RT_TSTAMP_DELETE    	{ SGI_RT_TSTAMP_DELETE,	"SGI_RT_TSTAMP_DELETE"	},#endif#ifdef SGI_RT_TSTAMP_START     	{ SGI_RT_TSTAMP_START,	"SGI_RT_TSTAMP_START"	},#endif#ifdef SGI_RT_TSTAMP_STOP      	{ SGI_RT_TSTAMP_STOP,	"SGI_RT_TSTAMP_STOP"	},#endif#ifdef SGI_RT_TSTAMP_ADDR      	{ SGI_RT_TSTAMP_ADDR,	"SGI_RT_TSTAMP_ADDR"	},#endif#ifdef SGI_RT_TSTAMP_MASK      	{ SGI_RT_TSTAMP_MASK,	"SGI_RT_TSTAMP_MASK"	},#endif#ifdef SGI_RT_TSTAMP_EOB_MODE  	{ SGI_RT_TSTAMP_EOB_MODE,"SGI_RT_TSTAMP_EOB_MODE"},#endif#ifdef SGI_USE_FP_BCOPY		{ SGI_USE_FP_BCOPY,	"SGI_USE_FP_BCOPY"	},#endif#ifdef SGI_GET_UST			{ SGI_GET_UST,		"SGI_GET_UST"		},#endif#ifdef SGI_SPECULATIVE_EXEC		{ SGI_SPECULATIVE_EXEC,	"SGI_SPECULATIVE_EXEC"	},#endif#ifdef SGI_XLV_NEXT_RQST		{ SGI_XLV_NEXT_RQST,	"SGI_XLV_NEXT_RQST"	},#endif#ifdef SGI_XLV_ATTR_CURSOR		{ SGI_XLV_ATTR_CURSOR,	"SGI_XLV_ATTR_CURSOR"	},#endif#ifdef SGI_XLV_ATTR_GET		{ SGI_XLV_ATTR_GET,	"SGI_XLV_ATTR_GET"	},#endif#ifdef SGI_XLV_ATTR_SET		{ SGI_XLV_ATTR_SET,	"SGI_XLV_ATTR_SET"	},#endif#ifdef SGI_BTOOLSIZE	{ SGI_BTOOLSIZE,	"SGI_BTOOLSIZE"		},#endif#ifdef SGI_BTOOLGET			{ SGI_BTOOLGET,		"SGI_BTOOLGET"		},#endif#ifdef SGI_BTOOLREINIT			{ SGI_BTOOLREINIT,	"SGI_BTOOLREINIT"	},#endif#ifdef SGI_CREATE_UUID			{ SGI_CREATE_UUID,	"SGI_CREATE_UUID"	},#endif#ifdef SGI_NOFPE			{ SGI_NOFPE,		"SGI_NOFPE"		},#endif#ifdef SGI_OLD_SOFTFP			{ SGI_OLD_SOFTFP,	"SGI_OLD_SOFTFP"	},#endif#ifdef SGI_FS_INUMBERS			{ SGI_FS_INUMBERS,	"SGI_FS_INUMBERS"	},#endif#ifdef SGI_FS_BULKSTAT			{ SGI_FS_BULKSTAT,	"SGI_FS_BULKSTAT"	},#endif#ifdef SGI_RT_TSTAMP_WAIT		{ SGI_RT_TSTAMP_WAIT,	"SGI_RT_TSTAMP_WAIT"	},#endif#ifdef SGI_RT_TSTAMP_UPDATE    	{ SGI_RT_TSTAMP_UPDATE,	"SGI_RT_TSTAMP_UPDATE"	},#endif#ifdef SGI_PATH_TO_HANDLE		{ SGI_PATH_TO_HANDLE,	"SGI_PATH_TO_HANDLE"	},#endif#ifdef SGI_PATH_TO_FSHANDLE		{ SGI_PATH_TO_FSHANDLE,	"SGI_PATH_TO_FSHANDLE"	},#endif#ifdef SGI_FD_TO_HANDLE		{ SGI_FD_TO_HANDLE,	"SGI_FD_TO_HANDLE"	},#endif#ifdef SGI_OPEN_BY_HANDLE		{ SGI_OPEN_BY_HANDLE,	"SGI_OPEN_BY_HANDLE"	},#endif#ifdef SGI_READLINK_BY_HANDLE		{ SGI_READLINK_BY_HANDLE,"SGI_READLINK_BY_HANDLE"},#endif#ifdef SGI_READ_DANGID			{ SGI_READ_DANGID,	"SGI_READ_DANGID"	},#endif#ifdef SGI_CONST			{ SGI_CONST,		"SGI_CONST"		},#endif#ifdef SGI_XFS_FSOPERATIONS		{ SGI_XFS_FSOPERATIONS,	"SGI_XFS_FSOPERATIONS"	},#endif#ifdef SGI_SETASH			{ SGI_SETASH,		"SGI_SETASH"		},#endif#ifdef SGI_GETASH			{ SGI_GETASH,		"SGI_GETASH"		},#endif#ifdef SGI_SETPRID			{ SGI_SETPRID,		"SGI_SETPRID"		},#endif#ifdef SGI_GETPRID			{ SGI_GETPRID,		"SGI_GETPRID"		},#endif#ifdef SGI_SETSPINFO			{ SGI_SETSPINFO,	"SGI_SETSPINFO"		},#endif#ifdef SGI_GETSPINFO			{ SGI_GETSPINFO,	"SGI_GETSPINFO"		},#endif#ifdef SGI_SHAREII			{ SGI_SHAREII,		"SGI_SHAREII"		},#endif#ifdef SGI_NEWARRAYSESS		{ SGI_NEWARRAYSESS,	"SGI_NEWARRAYSESS"	},#endif#ifdef SGI_GETDFLTPRID			{ SGI_GETDFLTPRID,	"SGI_GETDFLTPRID"	},#endif#ifdef SGI_SET_DISMISSED_EXC_CNT 	{ SGI_SET_DISMISSED_EXC_CNT,"SGI_SET_DISMISSED_EXC_CNT"	},#endif#ifdef SGI_GET_DISMISSED_EXC_CNT 	{ SGI_GET_DISMISSED_EXC_CNT,"SGI_GET_DISMISSED_EXC_CNT"	},#endif#ifdef SGI_CYCLECNTR_SIZE		{ SGI_CYCLECNTR_SIZE,	"SGI_CYCLECNTR_SIZE"	},#endif#ifdef SGI_QUERY_FASTTIMER		{ SGI_QUERY_FASTTIMER,	"SGI_QUERY_FASTTIMER"	},#endif#ifdef SGI_PIDSINASH		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -