@Wykopowiedz: Restart=always mówi systemd, żeby zrestartował Twoją usługę jeśli skończy działanie. Jeśli /opt/gównoskrypt.sh to jest skrypt który ma się wykonać tylko raz po starcie systemu to nie dodawaj.
@Wykopowiedz: Restart=always przeważnie daje się jak masz aplikację, która powinna działać cały czas i jeśli niespodziewanie zakończy się to systemd ją zrestartuje.
@Wykopowiedz: podsumowując - /etc/environment działa też na redhacie - wyżej napisałem, że jak chcesz dla wszystkich to /etc/environment to jest dobre miejsce. - błędem jaki zrobiłeś jest to, że dodałeś export do pliku /etc/environment. /etc/environment powinien wyglądać np. tak: JAVAHOME=$(......) PATH=$PATH:$JAVAHOME/bin
@Wykopowiedz: hmm, w /etc/environment chyba nie są ewaluowane zmienne jak $PATH i $JAVA_HOME spróbuj dodać taki PATH:
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/pelna/sciezka/do/java_home/bin Jeśli jednak wolisz korzystać z zmiennych to lepszą opcją będzie export JAVA_HOME=...; export PATH... w /etc/bashrc. Problem z /etc/bashrc jest taki, że wszyscy użytkownicy którzy korzystają basha będą mieć te zmienne, ale np. usługi startowane z systemd już nie. Więc to nie jest rozwiązanie system-wide jak /etc/environment.
Jak po uzupełnieniu tablicy przez użytkownika mogę określić ilość wartości różnych od zera? Tak aby podzielić sumę całej tablicy tylko przez ilość wartości różnych od zera?
for(int w=0;w<pali.size() -f;w++){ wynik[w] = pali[w]; //cout<<wynik[w]; } Co powinna zawierać zmienna wynik na końcu funkcji? Nazwa sprawdz_pali sugeruje, że funkcja zwraca powinna zwracać bool a nie std::string, więc dla mnie nie jest jasne co powinno być w wynik.
Wracam po długiej przerwie do C++ i mam pytanie: Tworzę sobie dynamiczną tablice unsigned long long:
unsigned long long* tab = new usigned long long[n] gdzie n jest intem przekazanym w parametrze. Potem przekazuję tablicę gdzie indziej i tam chcę sobie na szybko od nowa obliczyć jej wielkość korzystając z:
@TenAnonToKlopoty: sizeof(tab) == sizeof(void*) == 8 jeśli kompilujesz pod 64 bity. A sizeof(unsigned long long) to też 8, stąd n == 1. Także, oprócz tab, musisz też przekazać n. Aby lepiej to zrozumieć możesz też pobawić się tym kodem:
int n = 4; unsigned long long *tab1 = new unsigned long long[n];
@TenAnonToKlopoty: tu też nie sugeruję abyś porzucił new i zastosował VLA, bo pewnie w definicji funkcji masz unsigned long long* tab jako parametr, więc w samej funkcji sizeof(tab) == sizeof(void*) == 8, niezaleźnie od tego czy podasz tab1 czy tab2 z mojego przykładu. Lepiej to widać w tym kawałku kodu:
@TenAnonToKlopoty: podsumowując, jak przekazujesz tablicę gdzie indziej, to musisz także przekazać ile ma elementów i tyle. Sposób, który podałeś do obliczenia ile tablica ma elementów jest nieprawidłowy.
Poszedłem na #informatyka zaocznie w #poznan i trochę się załamałem, bo większość ludzi coś już działa w it, a ja kompletnie od zera. Na zajęciach też nie ogarniam co się dzieje. To normalne czy lepiej sobie odpuścić? #studia #zalesie #programowanie
Dlaczego kiedy używam (w CLion) trybu debug to sum ma zawsze taką samą wartość, a kiedy zwykłe Run to różną za każdym razem? Jakieś śmieci gdzieś w pamięci?
@bielu000: problem jeszcze może być w tym, że psh.name nie jest inicjalizowane w całości - inicjalizujesz tylko pierwsze 5 bajtów - w pozostałych 20 są śmieci. Spróbuj zrobić coś takiego w mainie: struct pseudo_header psh = { 0 }; I tak musisz mieć unsigned char w csum - inaczej wyjeźdźasz poza header w pętli.
@bielu000: ten przykład ze strony binarytides.com działa ponieważ oni w pętli od licznika odejmują 2: nbytes-=2; U Ciebie też to mogłoby zadziałać jakbyś miał: for(int i = 0; i < sizeof(struct pseudo_header)/sizeof(*ptr); i++). Ale od początku. sizeof(struct pseudo_header) zwraca Ci rozmiar struktury w bajtach (w Twoim przypadku jest to 36). Ale ponieważ ptr to jest wskaźnik na unsigned short, to w pętli "skakałeś" co dwa bajty (taki ma rozmiar unsigned short jeśli masz
polecenie |& tee my.logpolecenie 2>&1 | tee my.log@Wykopowiedz: jak to odpalasz. Przykładowo u mnie to działa tak:
$ rm /tmp/my.log; echo asd | tee /tmp/my.log && echo "From file:" && cat@Wykopowiedz: o coś takiego Ci chodzi?
$ cat /etc/os-release | while read LINE; do echo "$(date -u) ${LINE}"; doneMon 27 Apr 2020 01:35:00 PM
$ cat test.shcheck_update()
{
Do pliku test.sh wrzuć:
check_update(){