PDA

View Full Version : "Command Line Tool" and Release




VitaliBR
Feb 24, 2012, 01:07 PM
I created a program using the "Command Line Tool" in Xcode4, with C++

#include <iostream>
#include <fstream>

int main (int argc, const char * argv[])
{
//Creates an instance of ofstream, and opens example.txt
std::ofstream a_file ( "example.txt" );
// Outputs to example.txt through a_file
a_file<<"This text will now be inside of example.txt";
// Close the file stream explicitly
a_file.close();

return 0;
}



When I run it by xcode, it works perfectly and generates the txt file in:
/Users/<user>/Library/Developer/Xcode/DerivedData/<projectname>-crivblennrpgzoarxmkowljdzvmv/Build/Products/Debug

But if I try to run the program directly from the folder, the file is not generated txt

Why?

I created the release version too, but does not run properly (does not generate the txt file)
and in the Release folder is created one file <nameproject>.dSYM

what is unix executable file?



VitaliBR
Feb 24, 2012, 08:48 PM
I try:
char * dir1 = getcwd(NULL, 0);
strcat(dir1,"/text1.txt");
printf("%s \n",dir1);
myfile1.open(dir1, std::ios::binary);

char * dir2 = getcwd(NULL, 0);
strcat(dir2,"/text2.txt");
printf("%s \n",dir2);
myfile2.open(dir2, std::ios::binary);

in the executable Release show in terminal:
/Users/vitalimateus/text1.txt
/Users/vitalimateus/text2.txt

How do I open the file that it is in the same folder as the executable?

wrldwzrd89
Feb 25, 2012, 10:29 AM
I try:
char * dir1 = getcwd(NULL, 0);
strcat(dir1,"/text1.txt");
printf("%s \n",dir1);
myfile1.open(dir1, std::ios::binary);

char * dir2 = getcwd(NULL, 0);
strcat(dir2,"/text2.txt");
printf("%s \n",dir2);
myfile2.open(dir2, std::ios::binary);

in the executable Release show in terminal:
/Users/vitalimateus/text1.txt
/Users/vitalimateus/text2.txt

How do I open the file that it is in the same folder as the executable?
If you double-click the executable from the Finder, it should behave as you're expecting it to. If you're running it from the Terminal, it inherits the Terminal's current working directory, which defaults to your home folder.