gpt4 book ai didi

c - '!'在输入缓冲区中与 if 语句中的比较

转载 作者:行者123 更新时间:2023-11-30 21:27:22 24 4
gpt4 key购买 nike

我不清楚以下示例代码中输入缓冲区比较中 ! 的用法

/*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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com