Υπάρχει μια μέθοδος ανεξαρτήτως πλατφόρμας και συστήματος αρχείων για να λαμβάνετε την πλήρη διαδρομή του καταλόγου από τον οποίο εκτελείται ένα πρόγραμμα χρησιμοποιώντας C/C++; Δεν πρέπει να συγχέεται με τον τρέχοντα κατάλογο εργασίας. (Παρακαλώ μην προτείνετε βιβλιοθήκες, εκτός αν πρόκειται για τυπικές βιβλιοθήκες όπως η clib ή η STL).
(Αν δεν υπάρχει μέθοδος διαγνωσμένη με την πλατφόρμα/το σύστημα αρχείων, προτάσεις που λειτουργούν στα Windows και το Linux για συγκεκριμένα συστήματα αρχείων είναι επίσης ευπρόσδεκτες).
Αν θέλετε έναν τυπικό τρόπο χωρίς βιβλιοθήκες: Η όλη έννοια του καταλόγου δεν περιλαμβάνεται στο πρότυπο.
Αν συμφωνείτε ότι κάποια (φορητή) εξάρτηση από ένα σχεδόν τυποποιημένο lib είναι εντάξει: Χρησιμοποιήστε την Boost's filesystem library και ζητήστε την initial_path().
IMHO αυτό'είναι όσο πιο κοντά μπορείτε να φτάσετε, με καλό κάρμα (η Boost είναι ένα καθιερωμένο σύνολο βιβλιοθηκών υψηλής ποιότητας)
Όχι, δεν υπάρχει τυπικός τρόπος. Πιστεύω ότι τα πρότυπα της C/C++ δεν εξετάζουν καν την ύπαρξη καταλόγων (ή άλλων οργανώσεων του συστήματος αρχείων).
Στα Windows η GetModuleFileName() θα επιστρέψει την πλήρη διαδρομή προς το εκτελέσιμο αρχείο της τρέχουσας διεργασίας, όταν η παράμετρος hModule έχει οριστεί σε NULL. Δεν μπορώ να βοηθήσω με το Linux.
Επίσης θα πρέπει να διευκρινίσετε αν θέλετε τον τρέχοντα κατάλογο ή τον κατάλογο στον οποίο βρίσκεται η εικόνα/εκτελέσιμο αρχείο του προγράμματος. Όπως είναι η ερώτησή σας είναι λίγο διφορούμενη σε αυτό το σημείο.</strike>,