私はそこからFIFOの名前付きパイプから文字列(char *)を取り出しています。スレッドに入れています。文字列(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