K.Petros Δημοσ. 19 Ιουλίου 2015 Δημοσ. 19 Ιουλίου 2015 Παιδιά μια ερώτηση τώρα που μου έσκασε βραδιάτικα…Μήπως ξέρει κανείς πως μπορώ να πάρω μια πληροφορία από ένα πρόγραμμα κονσόλας σε c++ πχ… και να την διαβάσω από ένα άλλο πρόγραμμα python πχ..δηλαδή να έχω στην main να έχω ένα return (sum) και να διαβάσω το sum από την python μετά..Μπορεί να γίνει βασικά κάτι τέτοιο από ένα πρόγραμμα σε άλλο ή το return θα πρέπει να αποθηκεύσει την πληροφορία σε ένα αρχείο και μετά να την διαβάσω? Ναι θα πείτε γιατί να κάνεις κάτι τέτοιο αλλά λέμε τώρα.. έτσι, κουβέντες στις 2 το πρωί
parsifal Δημοσ. 19 Ιουλίου 2015 Δημοσ. 19 Ιουλίου 2015 Πέραν των αρχείων, υπάρχουν πολλοί ακόμη τρόποι να επικοινωνούν 2 processes/διεργασίες μεταξύ τους. Ενδεικτικά: https://en.wikipedia.org/wiki/Inter-process_communication
V.I.Smirnov Δημοσ. 19 Ιουλίου 2015 Δημοσ. 19 Ιουλίου 2015 (επεξεργασμένο) Είναι "μικτός προγραμματισμός". Το έχω κάνει πολλές φορες στο παρελθόν μεταξύ fortran και C/C++ όπου έγραφα ή χρησιμοποιούσα ανάμικτα ρουτίνες από αμφότερες τις γλώσσες στο ίδιο project. Το manual του compiler (DVF) είχε εκτεταμένες οδηγίες για visual basic, C/C++ και assembly. Δεν είναι ιδιαίτερα δύσκολο, απαιτείται απλώς να αντιστοιχιστούν σωστά κατά τις κλήσεις οι μεταβλητές μεταξύ των δύο γλωσσών. Και αντίθετα απ ότι νομίζεις, χρειάζεται να το κάνεις συχνά. Όταν έχεις ρουτίνες γραμμένες σε μια γλώσσα, απλώς τις καλείς από την άλλη αντί να τις ξαναγράψεις (κάτι που πολλές φορές είναι και αδύνατον)... - Επεξ/σία 19 Ιουλίου 2015 από V.I.Smirnov
παπι Δημοσ. 19 Ιουλίου 2015 Δημοσ. 19 Ιουλίου 2015 Το "return" της κονσολας είναι το output stream της. Άρα δεν θα κανείς return sum; Αλλά cout>>sum; 1
Papakaliati Δημοσ. 19 Ιουλίου 2015 Δημοσ. 19 Ιουλίου 2015 Standard streams. Ο πιο ευκολος τροπος θαρρω ειναι να ξεκινησεις το process του δευτερου προγραμματος απο το πρωτο και να ανταλλαζεις μηνυματα standard input (stdin), standard output (stdout) and standard error (stderr).
whodatinsomniaK Δημοσ. 19 Ιουλίου 2015 Δημοσ. 19 Ιουλίου 2015 Η μέθοδος που θα διαλέξεις, εξαρτάται και από τις απαιτήσεις σε μνήμη που έχουν τα προγραμματα σου.
Papakaliati Δημοσ. 19 Ιουλίου 2015 Δημοσ. 19 Ιουλίου 2015 Η μέθοδος που θα διαλέξεις, εξαρτάται και από τις απαιτήσεις σε μνήμη που έχουν τα προγραμματα σου. Αποψη μου οτι εφοσον μιλαμε για δυο προγραματα στον ιδιο υπολογιστη η μεθοδος που θα διαλεξει θα ειναι η πιο απλη, και δεν ειναι αλλη απο απλα pipelines με standard input, output. Δεν νομιζω πια οτι τα προγραμματα του θα εχουνε τετοια απαιτηση σε μνημη που θα αποτελεσει requirement.
gon1332 Δημοσ. 19 Ιουλίου 2015 Δημοσ. 19 Ιουλίου 2015 Συμφωνώντας και επεκτείνοντας τον Papakaliati, αν είσαι Linux: pipe() fork() dup2() execl() close()
whodatinsomniaK Δημοσ. 19 Ιουλίου 2015 Δημοσ. 19 Ιουλίου 2015 Συμφωνώ! Κυρίως απάντηςα στη λίστα που έδωσε ο Parsifal. Ότι δεν αρκεί μόνο να ξέρουμε τους τρόπους επίλυσεις αλλά να καταλαβαίνουνε και τι κάνουμε.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα