Başlığın belirttiği gibi, bir kaynak dizinden (kabuktaki kullanıcı tarafından bir ortam değişkeni olarak ayarlanan) bir hedef dizine yedeklenecek bir program yazmaya çalışıyorum (kullanıcı tarafından belirli bir yedekleme süresinde (bir çevre değişkeni olarak kabukta kullanıcı tarafından ayarlanmış) (kullanıcı tarafından kabukta bir ortam değişkeni olarak ayarlanır - biçim HH: MM). BackupTime için ortam değişkeni ayarlandığında benim inifinte döngü çalışmaz:Linux dosyalarını yedeklemek için bir C programını çalıştırma
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<time.h>
int main(int argc, char *argv[])
{
int b=1;
char backup[100];
char *source=getenv("BackupSource");
char *destination=getenv("BackupDestination");
char *btime=getenv("BackupTime");
time_t getTime;
struct tm *actualTime;
time(&getTime);
actualTime=localtime(&getTime);
strftime(backup, 100, "%H:%M", actualTime);
while(b)
{
while(strcmp(backup,btime)!=0)
{
sleep(60);
}
system("cp -r $BackupSource $BackupDestination");
}
return 0;
}
Sorum şudur: Kodum şudur. Döngünün her adımında yazdırma ifadeleri ekledim ve BackupTime için değişken kabuktan ayarlanmadığında her zaman çalışır. Değişken ayarlandığında, program herhangi bir uyarı veya hata olmadan derler ancak kesinlikle hiçbir şey yapmaz. Strcmp (yedekleme, zaman) parçasının çalıştığını biliyorum çünkü ayrı olarak yazdırdım ve ikisi de aynı olduğunda 0 değerini döndürüyor.
Nasıl çalışabileceğime dair herhangi bir fikir var mı?
eserler mükemmel (Ben başka bir uyku (kullandığınızda 60)). Teşekkür ederim! – JavaNewb