我从一个字符串(char *)从一个FIFO命名管道,从那里我把它放在一个线程。一旦我将字符串(char *)传递给线程函数,我就可以将它打印出来。但是,如果我做发送一个字符串通过线程函数打开与fopen()
FILE *fp;
fp = fopen(string, "wb");
if(fp){
//it never reaches here
}
整个功能基本上如下为相关部分。
void *threadFunction(void *stringBuf){
char *someString;
someString = (char *) stringBuf;
printf("%s\n", someString); //prints fine
FILE *fp;
fp = fopen(someString, "wb");
if (fp) {
//do stuff, but it never reaches here
}
我在做什么错在这里?
你对'someString'中指定的路径有写权限吗? – timrau
'fopen'可能会失败,您应该在'if'的'else'部分报告失败。查看“perror”。 –
为什么你不看fopen中的错误?使用perror()! – Stargateur