小编use*_*954的帖子

strtok分段错误

我试图理解为什么下面的代码片段给出了分段错误:

void tokenize(char* line)
{
   char* cmd = strtok(line," ");

   while (cmd != NULL)
   {
        printf ("%s\n",cmd);
        cmd = strtok(NULL, " ");
   } 
}

int main(void)
{
   tokenize("this is a test");
}
Run Code Online (Sandbox Code Playgroud)

我知道strtok()实际上并没有对字符串文字进行标记,但在这种情况下,line直接指向"this is a test"内部为数组的字符串char.是否有任何令牌化line而不将其复制到数组中?

c strtok segmentation-fault

12
推荐指数
3
解决办法
3万
查看次数

将execvp的输出重定向到C中的文件中

我不知道我做错了什么……但这是正在执行的代码片段:

if (fork() == 0)
    {       
             // child
        int fd = open(fileName, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);

        dup2(fd, 1);   // make stdout go to file

        execvp("ls","ls");
        close(fd);
            exit(0);
    }
if(wait(&status) == -1)
    {
        printf("ERROR REDIRECT\n");
    }
Run Code Online (Sandbox Code Playgroud)

fileName 被创建但里面什么都没有。我做错了什么?

c redirect file execv

3
推荐指数
1
解决办法
9207
查看次数

标签 统计

c ×2

execv ×1

file ×1

redirect ×1

segmentation-fault ×1

strtok ×1