ph03nix έγραψε:Φίλε simo θα χρειαστώ πάλι την βοήθεια σ...
Έστω ότι έχουμε το παρακάτω προγραμματάκι για να κάνουμε read το αρχείο animalist.txt που είναι στον ίδιο φάκελο που εκτελείται και το πρόγραμμα :
- Κώδικας: Επιλογή όλων
#include<stdio.h>
int main()
{ FILE *f;
f=fopen("animalist.txt","r");
getchar();
return 0;
}
Το θέμα είναι ότι δεν μ κάνει read το αρχείο.Δεν μ βγάζει σφάλμα: απλά μία μπάρα που αναβοσβήνει κ απλά πατάω ctrl+c για να σταματήσει να εκτελείται το πρόγραμμα μου.
Επίσης δεν θέλω το πρόγραμμα που γράφω να περίοριζεται σ'ένα directory κ ένα αρχείο .Θέλω να κάνω εγώ navigate πρώτα,μετά ls για να μ δείχνει ποια αρχεία υπάρχουν στο dir κ στην συνέχεια να διαλέγω ποιο θα κάνει read ή οτιδήποτε άλλο.Έψαξα κ βρήκα ότι για να χρησιμοποιήσεις εντολές όπως οι ls,pwd κλπ χρησιμοποιείς την συνάρτηση system κ την header stdlib!Αλλά δεν ξέρω πως να τις συνδυάσω!
Στο ebook που έδωσες δεν μπορώ να βρω απάντηση σ'αυτά τα ερωτήματα. :/
Πρώτα από όλα, θέλεις να υλοποιήσεις κάτι σαν «Πατήστε κάποιο πλήκτο για συνέχεια». Στο Linux αυτό είναι λίγο πιο περίπλοκο από ότι σε MSDOS.
Δες στο
http://cboard.cprogramming.com/c-progra ... linux.html για πληροφορίες για υλοποίηση. Τυπικά δεν το χρειάζεσαι, ωστόσο να το θέλεις πραγματικά, δοκίμασε μια από τις λύσεις και μάθε την καλά, ώστε να βάζεις τον ίδιο κώδικα σε κάθε πρόγραμμά σου.
Για να αλλάζεις καταλόγους, κτλ, χρησιμοποιείς τις βιβλιοθήκες συστήματος.
1. Εγκατέστησε το πακέτο manpages-dev
2. Τώρα εκτελείς π.χ. man 3 chdir
για να δεις τη σωστή κλήση συστήματος για την αλλαγή καταλόγου.
Η χρήση της system() είναι ο μπακάλικός τρόπος, οπότε είναι καλό να την αποφεύγεις. Μπορείς με execve(), κτλ να ξεκινάς διεργασίες, κτλ.
Τυπικά με το devhelp (sudo apt-get install devhelp) μπορείς να εγκαταστήσεις πρόγραμμα για ανάγνωση της βοήθειας, ωστόσο δεν έχουν μετατραπεί οι σελίδες του manpages-dev σε μορφή που να διαβάζει το devhelp.
Μπορείς όπως να το κάνεις με το yelp (εκείνο το πρόγραμμα για βοήθεια/τεκμηρίωση του GNOME). Εκτέλεσε το Yelp και μετά κάνεις αναζήτηση για π.χ. «chdir». Θα δεις τη σελίδα με τις οδηγίες, καθώς και παρόμοιες εντολές. Το καλό με το Yelp είναι ότι υποστηρίζει σελιδοδείκτες, οπότε μπορείς να καταγράψεις τις ενδιαφέρουσες σελίδες.