Προς το περιεχόμενο

Πρόβλημα με την system(""); στη C


karabouzouk...

Προτεινόμενες αναρτήσεις

Δημοσ.

Χρησιμοποιώ το NetBeans και ενώ δεν βγάζει error κατά το compiling σε αυτή την εντολή, όταν εκτελείται κατά τη διάρκεια του προγράμματος στην κονσόλα βγάζει

"sh: del: command not found" και φυσικά δεν εκτελείται κάθε φορά η εντολή dos... (η delete σε αυτή την περίπτωση..)

Τι να φταίει..?

Ευχαριστώ

Δημοσ.

Δεν είναι πρόβλημα της κλήσης system, αλλά της εντολής del που τη βάζεις να καλέσει. Σε Linux/Unix shell:

 

"sh: del: command not found"

 

δεν υπάρχει η εντολή del του DOS/Windows. Υπάρχει η αντίστοιχη rm...

Δημοσ.

Το κατάλαβα ότι κάτι τέτοιο παίζει....

ξέρω για τις αντιστοιχίες των εντολών.

Αλλά δεν δουλεύω σε Linux...!!

Και όντως τώρα που το λές το rm και mv δουλεύουν κανονικά...

Είναι φυσιολογικό αυτό..? και αν ναι γιατί..? Μήπως έχω κάνει κάτι λάθος στην εγκατάσταση..?

Τον compiler κλπ τα εγκατέστησα με το cygwin όπως έλεγε στην ιστοσελίδα του netbeans..

Δημοσ.

Είναι περίπου το ίδιο. Αν κατάλαβα καλά, ακολούθησες οδηγίες για να στήσεις το Cygwin, ώστε το Netbeans να χρησιμοποιεί τον C compiler του Cygwin. Το Cygwin είναι ένα Linux-like περιβάλλον για Windows. Αν έτρεξες το μεταγλωττισμένο πρόγραμμά σου μέσα από το Netbeans, το τελευταίο πιθανότατα κάλεσε το πρόγραμμα μέσα από το περιβάλλον του default shell (κελύφους) του Cygwin. Γι' αυτό δεν αναγνωριζόταν η del.

 

Κατά τη γνώμη μου, πιο πολύ θα βόλευε να χρησιμοποιήσεις τον C compiler του MinGW ο οποίος θα σου παράγει native Win32 εκτελέσιμα που δε θα χρειάζονται το emulation layer του Cygwin για να τρέξουν. Δε γνωρίζω όμως αν μπορεί το Netbeans να σεταριστεί για να δουλεύει με MinGW αντί Cygwin. Ψάξε το λίγο...

Δημοσ.

Ναι σωστά κατάλαβες... όντως από κει πρέπει να γίνεται το πρόβλημα....

Για το MinGW βρήκα αυτά που μπορώ να κατεβάσω ξεχωριστά... απλά λίγη βοήθεια στο τι να κατεβάσω απ όλα θα ήταν χρήσιμη...ευχαριστώ http://sourceforge.net/project/showfiles.php?group_id=2435

Δημοσ.

Υπάρχουν μερικοί οδηγοί στο διαδίκτυο για στήσιμο του MinGW στο Netbeans. Να δύο π.χ. :

 

http://wiki.netbeans.org/MinGWInCCDevelopmentPack

http://wiki.sergio-lopes.org/index.php?n=Rabble.NetbeansCinW

 

Αν και κατά τη γνώμη μου, θα ήταν προτιμότερο να χρησιμοποιήσεις κάποιο από τα δημοφιλή C/C++ IDE που να έρχεται έτοιμο με MinGW (όπως Code::Blocks, DevC++ κ.ά.). Εκτός αν χρησιμοποιείς το Netbeans και για development στην κατεξοχήν γλώσσα για την οποία φτιάχτηκε, δηλαδή Java...

Δημοσ.

Δεν το χρησιμοποιώ ακόμα για Java αλλά επειδή έχω τέτοιο σκοπό θα ήταν καλύτερα για μένα να μην αλλάζω περιβάλλοντα...

 

Με τα χίλια ζώρια κατάφερα να το κάνω να χρισημοποιεί το minGW....

 

Έχω κάποια μικροερωτήματα ακόμα...

Όταν τρέχει τις εντολές που ανέφερα παραπάνω (del και ren) βγάζει πάλι στη γραμμή εντολών ότι δεν μπορεί να κάνει τη συγκεκριμένη ενέργεια στο αρχείο γιατί χρησιμοποιείται από άλλη εφαρμογή..

Καμιά ιδέα...?

Δημοσ.

Μπορεί να χρησιμοποιείται ακούσια. Τσέκαρε ποια διεργασία το χρησιμοποιεί με κάποιο σχετικό utility όπως το Handle από Sysinternals. Υπάρχει και στα Windows ενσωματωμένη εντολή, π.χ. στα XP η openfiles αλλά είναι λίγο πιο δύσχρηστη (θέλει restart για να ενεργοποιηθεί το system global flag 'maintain objects list', αν δεν έχει ενεργοποιηθεί πιο πριν).

Δημοσ.

Τελικά ήταν δική μου βλακεία... μου ήρθε αναλαμπή πριν προλάβω να δοκιμάσω αυτό που είπες parsifal και κατάλαβα ότι πρέπει να κάνω fclose() το δείκτη αρχείου πριν από την εντολή system.... γι αυτό μου έλεγε ότι χρησιμοποιείται....

Ευχαριστώ

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...