我不清楚以下示例代码中输入缓冲区比较中 !
的用法
/*GLOBAL VARIABLES*/
int pipe_count=0, fd;
static char* args[512];
char *history_file;
char input_buffer[1024];
int main()
{
int status;
char ch[2]={"\n"};
getcwd(current_directory, sizeof(current_directory));
signal(SIGINT, sigintHandler);
while (1)
{
clear_variables();
prompt();
fgets(input_buffer, 1024, stdin);
if(strcmp(input_buffer, ch)==0)
{
continue;
}
if(input_buffer[0]!='!')
{
fileprocess();
filewrite();
}
len = strlen(input_buffer);
input_buffer[len-1]='\0';
strcpy(his_var, input_buffer);
if(strcmp(input_buffer, "exit") == 0)
{
flag = 1;
break;
}
我无法理解if(input_buffer[0]!='!')
在此语句中,'!'
的含义是什么?相比之下,它是否表示 NULL
或者是别的东西。完整代码很大,这只是我不太清楚的一部分。
我检查了 here 中 !
的 ASCII 值但我无法理解在 NULL
等代码中使用 !
与 input_buffer[0]
进行比较我理解它是NULL
、'\0'
、' '
。这种 input_buffer[0]!='!'
我不清楚它会被翻译成什么?
我不是在询问关于这里的不等于运算符,即if (condition1 != condition2)
我了解它是如何工作的。然而,在条件2中,有'!'
,这就是我要问的。这意味着什么?
最佳答案
!
运算符在 Linux 中有多种用途。
看这个article .
在您的情况下,可能是检查历史记录中的命令是否作为输入给出。 请参阅文章的第一点。
关于c - '!'在输入缓冲区中与 if 语句中的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52090150/