Question: I'm trying to use node on my fedora 21 installation. However whenever I install a package via npm I am not able to to call that package such as gulp.

```
npm install -g gulp

```

then : `gulp run`

error:

```
zsh: command not found: gulp

```

Answer: 
which pointer tnext points to should be modified at the end of the function to hold a pointer at the character following end of the last token matched, so you can loop over all the matches as in this exemple :

<https://msdn.microsoft.com/en-us/library/ftsafwz3.aspx>

So, to answer to your question, it is a pointer to a pointer because the function needs to modify the pointer pointer to allow loops.
```
TCHAR *mywtok(TCHAR *tszText, TCHAR *ch, TCHAR **tnext) {
    TCHAR res[1005];
    if (tszText == nullptr)
        tszText = *tnext;
    int len = wcslen(tszText);
    int rlen = 0;
    for(int i = 0; i < len; i++){
        if (tszText[i] != ch[0]) {
            res[rlen++] = tszText[i];
        }
        else {
            res[rlen] = '\0';
            *tnext = tszText + i+1;
            wcscpy_s(tszText, wcslen(res)+1, res);
            return tszText;
        }
    }
    res[rlen] = '\0';
    tnext = nullptr;
    wcscpy_s(tszText, wcslen(res)+1, res);
    return tszText;
}

```

The pointer just modify its values,the pointer to pointer can make a pointer point other position.

But why the wcstok function have only two parameter also can use nullptr to first parameter?