cout
プログラムで使用すると、次のような奇妙な動作が発生します。
...
char *input = realpath(argv[1], NULL);
char *output = argv[2];
char *tarout = new char[strlen(output)+6];
strcpy(tarout, output);
strcat(tarout, ".temp");
cout << "Tarout: " << tarout << endl;
int tRet = tarball(input, tarout);
if(tRet != 1) {
cerr << "Error: Could not compress directory!\nHalting package creation!" << endl;
return 0;
}
int gRet = gzip(tarout, output);
if(gRet != 1) {
cerr << "Error: Could not compress directory!\nHalting package creation!" << endl;
return 0;
} else {
cout << "TAROUT: " << tarout << endl;
if((remove(tarout))!=0) {
cerr << "Warning: Could not delete temporary file!" << endl;
return 0;
}
}
...
基本的に、このプログラムは tar ファイルを作成し、それを gzip で圧縮します。これは 100% 実際のコードではないため、私が受け取ったのと同じ奇妙な動作をしない可能性があります。
最初cout << "TAROUT: " << tarout << endl;
のファイルを削除すると、2 番目cout << "TAROUT: " << tarout << endl;
のファイルは何も返されず、一時ファイルが削除されません。なぜですか?