C 语言中 strtok(x,y)函数 使用中的null参数有关问题

C 语言中 strtok(x,y)函数 使用中的null参数问题
关于strtok的使用说明如下:
“第一个参数x指定一个字符串,它包含零个或者多个y中一个或者多个分隔符分隔的标记。strtok找到str的下一个标记,并将其用NUL结尾,然后返回一个指向这个标记的指针。”

首先,nul是字符串结束符“\0”,用于结束字符串的;null是表示空指针,即没有具体指向的指针。

第一执行strtok(x,y)(假设y指向空格),则在x指向的字符串的第一个空格被改为 \0(设此处为a处),且返回一个指向该nul的指针。然后再次执行strtok(null,y),问题:
1. 此时指针从a处开始接着往下找下一个空格?按照strtok的定义说明,此时它应该从他的第一个参数开始,即从null开始,那这个null是个空指针,是如何确定从哪里开始找的呢?注:上面的设置是设为nul而非null。
2. 如果在指针向下查找y的过程中,遇到nul即\0,则说明此时已经到达x指向的字符串结尾,结束查找,是吗?

谢谢!

------解决方案--------------------
C/C++ code

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
    FILE* ini;
    char* name;
    char* value;
    char line[81];

    ini = fopen("19.txt", "r");
    if(ini == NULL)
    {
        return -1;
    }

    while(!feof(ini))
    {
        fgets(line, 80, ini);
        name = strtok(line, "=");
        value = strtok(NULL, "=");
        if(name && value)
        {
            value[strlen(value) - 1] = '\0';
            printf("[name=%s, value=%s]\n", name, value);
        }
        }
    
    return 0;
}