首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C中将文件扩展名与基名的连接

C中将文件扩展名与基名的连接
EN

Stack Overflow用户
提问于 2014-06-19 01:55:41
回答 1查看 256关注 0票数 0

由于某些原因,以下内容不起作用:

代码语言:javascript
复制
int i;
for(i = 1; i < argc; i++) // Create thread for each dataset.
{
    filename = strcat(argv[i], ".sdx"); // Concatenate file-extension '.sdx' to basename.
    pthread_attr_init(&attr); // Set the attribute of the thread (default).
    pthread_create(&tid[i], &attr, start_routine, filename); // Create thread.
    pthread_join(tid[i],NULL); // Join thread after it completed.
}

如果我只传入一个文件,那么它就能工作,但不止一个文件会产生分段错误。我不明白,如果我没有连接文件扩展名,而是将完整的文件名(包括扩展名)作为命令行参数传递,那么一切都会正常工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-19 02:01:43

您不应该直接修改argv[i]。将其复制到本地缓冲区。

代码语言:javascript
复制
int i;
for(i = 1; i < argc; ++i)
{
    char *filename = malloc(strlen(argv[i]) + 4 + 1);
    sprintf(filename, "%s.sdx", argv[i]);
    pthread_attr_init(&attr); // Set the attribute of the thread (default).
    pthread_create(&tid[i], &attr, start_routine, filename); // Create thread.
    pthread_join(tid[i],NULL); // Join thread after it completed.
    free(filename);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24297610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档