Chris_F Posted November 11, 2008 Share Posted November 11, 2008 Ok, here is the first program: #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { char name[64]; printf("Please enter your name: "); fgets(name, 64, stdin); name[strlen(name)-1] = 0; printf("Hello, %s!\n", name); exit(0); } Works fine on my computer, but my friend gets "Bus error". He has Tiger on an intel mac, I have Leopard, but I doubt that should make a difference, it would be crazy if it did. Second: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE *fp; fp = fopen("testfile.txt", "w"); fclose(fp); exit(0); } If I run it in terminal with the command ./programname it works fine, it creates a new file. But if I double click the program it only brings up terminal and finishes without making the file. This just seen completely wacky. What's up? Link to comment https://www.insanelymac.com/forum/topic/135766-new-to-os-x-why-wont-this-work/ Share on other sites More sharing options...
stroke Posted November 12, 2008 Share Posted November 12, 2008 1) The operating system does make a difference. Chances are you built it for the default 10.5 SDK, and not the 10.4 SDK. Go to Project -> Edit Project Settings, and look under the General tab. 2) When you double click the program — or even if you run it manually through terminal — it treats the current directory (pwd in terminal) as the working directory, so your file is created there. By changing directories (cd) into programname's path and doing ./programname, you change the current working directory. Link to comment https://www.insanelymac.com/forum/topic/135766-new-to-os-x-why-wont-this-work/#findComment-962923 Share on other sites More sharing options...
Recommended Posts