Возможно, вам нужна функция int chdir(const char *path);
. Пример:
#include <unistd.h>
/* ... */
chdir("/Users/MyNAME/Desktop/Folder");
system("make flash");
В <unistd.h>
есть много других полезных функций, которые должны присутствовать в любой системе на основе POSIX. Проверьте здесь для большого списка.
РЕДАКТИРОВАТЬ: Если путь не постоянен, вы, вероятно, захотите предоставить его в качестве аргумента командной строки для вашей программы:
#include <unistd.h>
#include <stdio.h>
/* ... */
int main(int argc, char* argv[])
{
if(argc < 2)
{
fprintf(stderr, "Usage: %s <path>\n", argv[0]);
return 1;
}
chdir(argv[1]);
system("make flash");
/* ... */
return 0;
}
Запустите его с помощью строки вроде ./foo /Users/MyNAME/Desktop/Folder
.