C-Objective Temat założony przez niniejszego użytkownika |
Odpowiedniki funkcji chdir oraz getcwd » 2016-01-27 16:25:22 Witam. Poszukuję odpowiednika funkcji _chdir() i _getcwd() dla DOS. Może mnie ktoś nakierować? |
|
darko202 |
» 2016-01-28 15:23:41 |
|
jankowalski25 |
» 2016-02-04 22:49:31 |
|
C-Objective Temat założony przez niniejszego użytkownika |
» 2016-02-06 13:48:57 Po pierwsze, darko202 winapi != DOS API. jankowalski25, skompiluj ten kod, i zobacz gdzie ci stworzyło plik; #include <stdlib.h> #include <stdio.h> int main() { system( "cd test" ); FILE * test = fopen( "TESTING.TXT", "w" ); fclose( test ); return 0; }
Sprawa oczywista, w miejscu gdzie program był uruchomiony. |
|
mateczek |
» 2016-02-06 14:32:29 Po pierwsze, darko202 winapi != DOS API. |
DOS chyba nie miał API były przerwania programowe!!!! |
|
jankowalski25 |
» 2016-02-06 16:44:28 @C-Objective Co zwraca funkcja system? |
|
C-Objective Temat założony przez niniejszego użytkownika |
» 2016-02-08 15:48:26 Zwraca wartość typu int, "Po zakończeniu wykonywania polecenia system operacyjny oddaje kontrolę programowi, zwracając liczbę całkowitą, która informuje czy wywołanie polecenia się powiodło". Funkcja system działa najprawdopodobniej tak, że po wywołaniu komendy zatrzymuje interpreter. |
|
jankowalski25 |
» 2016-02-08 19:27:39 Ile ona wynosi? informuje czy wywołanie polecenia się powiodło |
Nie dostałeś przypadkiem żadnych błędów? Samo polecenie wklepane w terminalu powinno zadziałać, ale w tym kodzie, który podajesz, może z różnych powodów nie zadziałać. //edit: Strzelam, że robisz coś w tym stylu: 1. Wywołujesz funkcję system. 2. Kod przekazany do tej funkcji zostaje wykonany niezależnie od programu, który ją wywołał. 3. Pomocniczy element zostaje zamknięty (ale to tam nastąpiła zmiana katalogu, więc wszystko zostaje utracone). 4. Twój program wykonuje się dalej, natomiast zmiana katalogu jest lokalnym efektem ubocznym i nie występuje w głównym programie. If command is not a null pointer, it causes undefined behavior. |
Wniosek: nie używaj funkcji system, jeśli chcesz jej przekazać cokolwiek innego, niż NULL . Nie masz żadnej gwarancji, że kod funkcji system będzie w jakikolwiek sposób powiązany z Twoim programem (masz sporą szansę na to, że zostanie wykonany niezależnie). |
|
« 1 » 2 |