我正在尝试将系统标准输出重定向到c中的变量,但我找不到合适的答案,这样我就可以在不使用文件的情况下完成此操作。
我需要做的是列出目录中的所有文件,获取文件名,然后使用其他程序将其上传到dropbox。
这是我到目前为止所做的:
char variable[100];
sem_t sem_var, sem_upl;
void *cin(){
sem_wait(&sem_var);
gets( variable );
sem_post(&sem_upl);
return 0;
}
main(){
sem_init(&sem_var, 0, 0);
sem_init(&sem_upl, 0, 0);
pthread_t thread;
pthread_create(&thread, NULL, &cin, NULL);
system("ls /home/pi/foscam"); //list all files
sem_post(&sem_var);
sem_wait(&sem_upl);
char buffer[128];
snprintf(buffer, sizeof(buffer), "./dropbox_uploader.sh upload /home/pi/foscam/%s uploads", variable);
system(buffer); //upload file
while(1000000);
snprintf(buffer, sizeof(buffer), "rm /home/pi/foscam/%s", variable);
system(buffer); //delete file
return 0;
}
不幸的是,“cin”线程中的“gets”命令对此不起作用,因此需要用其他东西替换......