在不使用文件的情况下将STDOUT重定向到C中的变量

时间:2015-03-14 00:21:44

标签: c variables stdout

我正在尝试将系统标准输出重定向到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”命令对此不起作用,因此需要用其他东西替换......

0 个答案:

没有答案