Βοήθεια με δημιουργία καταλόγου με κλήση συστήματος στη C  Το θέμα επιλύθηκε

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Βοήθεια με δημιουργία καταλόγου με κλήση συστήματος στη C

Δημοσίευσηαπό Lithan » 22 Απρ 2012, 15:14

Είδα το θέμα με τις κλήσεις συστήματοσ στη C και χρειάζομαι μια βοήθεια πάνω σε ένα προτζεκτ ...

Θέλω να δημιουργήσω έναν νέο κατάλογο του οποίου το όνομα θα δίνεται απο το πληκτρολόγιο.Έπειτα μέσα σε αυτόν τον κατάλογο θα πρέπει να δημιουργώ ένα αρχείο με τα αποτελέσματα της ps -A !
Για την δημιουργία του καταλόγου χρησιμοποίησα την mkdir() και συγκεκριμένα έχω γράψει :
...
int s;
s=mkdir("monopati/name", 0777);

...αυτό όμως το κάνουμε όταν θέλουμε να πάει στο μονοπάτι που δίνουμε και να φτιάξει τον κατάλογο με το όνομα "name"

το προβλημά μου είναι πως δεν ξέρω πως να συντάξω την mkdir ώστε να πάρει το όνομα απο το πληκτρολόγιο ...

Όσο για την δημιουργία του αρχείου... η fprintf αρκεί?

ΕΥΧΑΡΙΣΤΩ!!!
Τελευταία επεξεργασία από filippos.xf και 23 Απρ 2012, 09:04, έχει επεξεργασθεί 2 φορά/ες συνολικά
Αιτία: Διόρθωση στον τίτλο, απαγορεύονται τα κεφαλαία γράμματα.
Lithan
babeTUX
babeTUX
 
Δημοσιεύσεις: 3
Εγγραφή: 22 Απρ 2012, 14:11
Εκτύπωση

Re: ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΛΟΓΟΥ ΜΕ ΚΛΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΣΤΗ C

Δημοσίευσηαπό evolgen » 22 Απρ 2012, 15:34

Μεταφέρθηκε στην κατάλληλη ενότητα



!

Μήνυμα ενημέρωσης προς τον/την Lithan

Σε παρακαλούμε να διαβάσεις τις οδηγίες προς νεοεισερχόμενους προσεκτικά. Είναι σημαντική η προσάρτηση της υπογραφής με τα χαρακτηριστικά του υπολογιστή σου hardware id (πχ [10ec:8168]), έτσι ώστε να δίνονται συγκεκριμένες πληροφορίες όταν πρόκειται για επίλυση ενός προβλήματός σου. Οι αλλαγές μπορούν να γίνουν από τον πίνακα ελέγχου αλλά και με το αυτόματο script που θα το βρεις παρακάτω.
Αυτόματο script υπογραφής


Καλωσήρθες στο φόρουμ της Ελληνικής Κοινότητας του Ubuntu! :)
Το να μειώνεις ένα έργο ελεύθερου λογισμικού, επειδή θεωρείς το δικό σου καλύτερο,
είναι απαράδεκτη συμπεριφορά και δε συμβαδίζει με τις αρχές του ελεύθερου λογισμικού.

Γνώσεις Linux: Μέτριο++ ┃ Προγραμματισμός: Perl, R, Python, SQL, C, Common Lisp, BashΑγγλικά: Άριστα

1. Ubuntu 14.04 trusty
2. Intel Core i7-3520M CPU @ 2.90GHz ‖ RAM 7892 MiB
3. Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
4. eth0: Broadcom NetXtreme BCM57765 Gigabit Ethernet PCIe [14e4:16b4] (rev 10) ⋮ eth1: Broadcom BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)
Άβαταρ μέλους
evolgen
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1031
Εγγραφή: 28 Ιούλ 2010, 14:22
Τοποθεσία: UK
IRC: bioevolgenec
Εκτύπωση

Re: ΒΟΗΘΕΙΑ ΜΕ ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΛΟΓΟΥ ΜΕ ΚΛΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΣΤΗ

Δημοσίευσηαπό linuxs » 22 Απρ 2012, 20:03

Lithan έγραψε:Είδα το θέμα με τις κλήσεις συστήματοσ στη C και χρειάζομαι μια βοήθεια πάνω σε ένα προτζεκτ ...

Θέλω να δημιουργήσω έναν νέο κατάλογο του οποίου το όνομα θα δίνεται απο το πληκτρολόγιο.Έπειτα μέσα σε αυτόν τον κατάλογο θα πρέπει να δημιουργώ ένα αρχείο με τα αποτελέσματα της ps -A !
Για την δημιουργία του καταλόγου χρησιμοποίησα την mkdir() και συγκεκριμένα έχω γράψει :
...
int s;
s=mkdir("monopati/name", 0777);

...αυτό όμως το κάνουμε όταν θέλουμε να πάει στο μονοπάτι που δίνουμε και να φτιάξει τον κατάλογο με το όνομα "name"

το προβλημά μου είναι πως δεν ξέρω πως να συντάξω την mkdir ώστε να πάρει το όνομα απο το πληκτρολόγιο ...

Όσο για την δημιουργία του αρχείου... η fprintf αρκεί?

ΕΥΧΑΡΙΣΤΩ!!!


Καλησπέρα και απο εδώ,

νομίζω οτι σου λείπουν βασικές γνώσεις πάνω στην C και όχι συγκεκριμένα στις κλήσεις συστήματος. Θα πρέπει να δημιουργήσεις ένα string που θα διαβάζεις απο το keyboard και στη συνέχεια να βάλεις αυτό στην θέση του filename. Το string ¨ορισέ το,
Κώδικας: Επιλογή όλων
char filename[100];

διάβασέ το με scanf() για παράδειγμα και φτιάξε τον φάκελό σου.

Δημιουργία αρχείου... :/ ΌΧΙ. :) Έχεις πέσει πολύ έξω. Δές εδώ http://forum.ubuntu-gr.org/viewtopic.php?f=61&t=17477 και αν δεν σε καλύψει ούτε το google πες μας. :)

έγραψε:Edit: ΠΟΛΥ ΧΡΗΣΙΜΟ ΕΙΝΑΙ ΝΑ ΒΛΕΠΕΙΣ ΤΗΝ ΚΑΘΕ ΣΥΝΑΡΤΗΣΗ ΚΑΙ ΝΑ ΜΑΘΑΙΝΕΙΣ ΠΩς ΟΡΙΖΕΤΕ. ΧΡΗΣΙΜΟΠΟΙΗΣΕ man αν δουλέυεις σε Linux και www.cplusplus.com γενικότερα.
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: ΒΟΗΘΕΙΑ ΜΕ ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΛΟΓΟΥ ΜΕ ΚΛΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΣΤΗ

Δημοσίευσηαπό Lithan » 22 Απρ 2012, 20:39

έγραψε:νομίζω οτι σου λείπουν βασικές γνώσεις πάνω στην C

Μην βιάζεσαι να με κρίνεις και όσο αφορά το link για αρχεία, τα έχω φρέσκα στο μυαλό μου.
Θα σου γράψω όμως σε 3 στάδια τι μου ζητάνε κ νομίζω πως θα καταλάβεις!
1.Δημιουργία γονικής διεργασίας
2.Δημιουργία νέου καταλόγου από θυγατρική διεργασία
3.Τοποθέτηση στον κατάλογο αρχείο με τα αποτελέσματα της ps -A
* το όνομα του καταλόγου και το όνομα του αρχείου θα δίνονται από το πληκτρολόγιο
Τέλος να πω πως το man το χρησιμοποίω!Αλλά ίσως δεν χρειάζεται να χρησιμοποιήσω την mkdir, σκέφτομαι!
Φιλικά Θανάσης
Lithan
babeTUX
babeTUX
 
Δημοσιεύσεις: 3
Εγγραφή: 22 Απρ 2012, 14:11
Εκτύπωση

Re: ΒΟΗΘΕΙΑ ΜΕ ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΛΟΓΟΥ ΜΕ ΚΛΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΣΤΗ  Το θέμα επιλύθηκε

Δημοσίευσηαπό linuxs » 22 Απρ 2012, 20:42

Θα σου κάνω ένα σχεδιάγραμμα σε ψευδοκώδικα σε λίγη ωρίτσα γτ έχω δουλειά. Ελπίζω να βοηθήσει.

Λοιπόν, για να μην λέμε περιτά πράγματα, που ακριβώς κολάς έχεις κάνει κάποιον κώδικα? Μπορώ να τον δώ? Σου βγάζει κάποιο σφάλμα? Anyway, το σκεπτικό σου μου φαίνεται λογικό και προτείνω να οτ υλοποιήσεις ώς πρώτη λύση και βλέπεις. Αν κατάλαβα καλά, το πρόβλημά σου είναι οτι δεν μπορείς να δώσεις όνομα απο το Keyboard? :/ Δεν είναι τίποτα αυτό! :S

Κώδικας: Επιλογή όλων
char dirname[32];
char filename[32];
scanf("%s", &dirname);
scanf("%s", &filename);

mkdir(dirname, <mode>);

/* Για την δημιουργία αρχείου θα χρησιμοποιήσεις την fopen() με mode 'w' */
fopen("filename","w");

/* Μια πρόχειρη ιδέα είναι να χρησιμοποιήσεις την exec() */
execl("/bin/ps", "/bin/ps", "-A", (char *) 0); /* ίσως θέλει κάποια τροποποίηση στο path στο δικό σου μηχάνημα */

Αν υπάρχει ακόμη κάποιο κενό ρώτα. :)
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: ΒΟΗΘΕΙΑ ΜΕ ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΛΟΓΟΥ ΜΕ ΚΛΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΣΤΗ

Δημοσίευσηαπό Lithan » 23 Απρ 2012, 08:59

Ευχαριστώ φίλε...αυτό ήθελα...όσο για την mkdir στην αρχή έτσι την είχα βάλει κ μου πέταγε σφάλμα (τι να πεις!)
Δουλεύω σε MacOS X...θα το ψάξω για το path!
Ευχαριστώ για τον χρόνο σου!
Lithan
babeTUX
babeTUX
 
Δημοσιεύσεις: 3
Εγγραφή: 22 Απρ 2012, 14:11
Εκτύπωση


  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι