freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Που κάνω λάθος


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [8 Μηνύματα]       Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
GiwrgosNik


Μέλος από: 04 Δεκ 2007
Μηνύματα: 3

View users profile
ΜήνυμαΣτις: 05 Δεκ 2007 17:42    Θέμα: Που κάνω λάθος Απάντηση με παράθεση  Mark this post and the followings unread

Έχω γράψει τον παρακάτω κώδικα δεν ξέρω γιατί δεν τρέχει.Μήπως ξέρετε αν έχω κάπου λάθος.Σας παρακαλώ κοιτάξτε το να μου πείτε γιατι πρέπει να την παραδώσω αύριο..Ευχαριστώ

#include <signal.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>

void catch_alarm(int sig) {

printf("Child proccess will Exit..\n");
/*Se auti tin function termatizetai i diergasia paidi*/
exit(0);
}

void myfunc(int sig) {
signal(SIGALRM, catch_alarm);
alarm(15);
while (1) {

printf("I am the child\n");
}
}

int main(){

int pid;

signal(SIGALRM,catch_alarm);
pid = fork();

if (pid = 0) {

while (1) {

printf("I am the child\n");
}



} else {

if (!pid == 0) {

sleep(3);
printf("Mypid is : %d\n",getpid());

signal(SIGINT,myfunc);

}
}

}
Programmer


Μέλος από: 22 Σεπ 2007
Μηνύματα: 67

View users profile
ΜήνυμαΣτις: 05 Δεκ 2007 23:43    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Τα λάθη που κάνουν μπαμ είναι
το if (pid = 0)
κάντο if (pid == 0)
και το
if (!pid == 0)
κάντο if (!(pid == 0))

βάλε και στο τέλος της main κανένα return 0; να μην διαμαρτύρεται ο μεταγλωττιστής...

απορώ που βρίσκετε τον κώδικα... και πως τον χρησιμοποιήτε... όταν δεν ξέρετε τα στοιχειώδη...

Last edited by Programmer on 06 Δεκ 2007 05:51, edited 1 time in total
GiwrgosNik


Μέλος από: 04 Δεκ 2007
Μηνύματα: 3

View users profile
ΜήνυμαΣτις: 05 Δεκ 2007 23:59    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

πουθενά δε βρίσκουμε τον κώδικα...προσπαθούμε μόνοι μας...
ναι όντως δεν ξέρουμε τα στοιχείώδη διότι είμαστε αρχάριοι και στη σχολή δε διδάσκουν τίποτα απολύτως. Απλά απαιτούν. ευχαριστώ πάντως.
cherouvim
Script Master

Μέλος από: 13 Ιουλ 2005
Βοηθήματα: 7
Νέα: 1
Scripts: 1
Μηνύματα: 256+

Περιοχή: Athens, Greece
View users profile Visit posters website
blog linkedin twitter 
ΜήνυμαΣτις: 06 Δεκ 2007 09:18    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Programmer ανέφερε:
απορώ που βρίσκετε τον κώδικα... και πως τον χρησιμοποιήτε... όταν δεν ξέρετε τα στοιχειώδη...

Δώσε τα φώτα σου μεγάλε!

_________________
blog
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 06 Δεκ 2007 12:00    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Είναι καλή πρακτική να γράφεις τους ελέγχους βάζοντας πρώτα το σταθερό μέρος ώστε να χτυπάει ο compiler σε "χαζά" λάθη και να είναι εύκολο να τα εντοπίσεις. Δηλαδή
Αντί για
if (a == 0)
να γράφεις
if (0 == a)

Αν κάνεις λάθος και βάλεις = αντί για == το πρώτο δεν χτυπάει γιατί είναι αποδεκτή έκφραση ενώ το δεύτερο θα χτυπήσει λάθος.

Θα σου ήταν χρήσιμο θα ήταν να ρίξεις μια ματιά στο google για καλές πρακτικές προγραμματισμού. Ξεκίνα από εδώ
cherouvim
Script Master

Μέλος από: 13 Ιουλ 2005
Βοηθήματα: 7
Νέα: 1
Scripts: 1
Μηνύματα: 256+

Περιοχή: Athens, Greece
View users profile Visit posters website
blog linkedin twitter 
ΜήνυμαΣτις: 06 Δεκ 2007 17:20    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

dva_dev ανέφερε:
Είναι καλή πρακτική να γράφεις τους ελέγχους βάζοντας πρώτα το σταθερό μέρος ώστε να χτυπάει ο compiler σε "χαζά" λάθη και να είναι εύκολο να τα εντοπίσεις. Δηλαδή
Αντί για
if (a == 0)
να γράφεις
if (0 == a)

Ένα παρόμοιο στη Java είναι το εξής.
Αντί να πεις:
κώδικας:
if (foo!=null && foo.equals("bar")) {

λες:
κώδικας:
if ("bar".equals(foo)) {


Έτσι γλιτώνεις το null check.

_________________
blog
Programmer


Μέλος από: 22 Σεπ 2007
Μηνύματα: 67

View users profile
ΜήνυμαΣτις: 07 Δεκ 2007 00:02    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

κώδικας:
Δώσε τα φώτα σου μεγάλε!


Δεν είχα σκοπό να σχολιάσω τις απαντήσεις σου, αλλα μιας και ζητάς (ειρωνικά?) τα φώτα μου, να σου τα δώσω....

cherouvim ανέφερε:
dva_dev ανέφερε:
Είναι καλή πρακτική να γράφεις τους ελέγχους βάζοντας πρώτα το σταθερό μέρος ώστε να χτυπάει ο compiler σε "χαζά" λάθη και να είναι εύκολο να τα εντοπίσεις. Δηλαδή
Αντί για
if (a == 0)
να γράφεις
if (0 == a)

Ένα παρόμοιο στη Java είναι το εξής.
Αντί να πεις:
κώδικας:
if (foo!=null && foo.equals("bar")) {

λες:
κώδικας:
if ("bar".equals(foo)) {


Έτσι γλιτώνεις το null check.


Καμία σχέση του if (0 == variable) με το
if (object.equals(other_object) ) και το "string literal" object είναι έστω και αν δεν έχει όνομα...
Στην περίπτωση της C βάζεις το 0 στην αριστερή πλευρά για να σε ειδοποιήσει ο compiler για το λάθος σου στον τελεστή (αν υπάρξει = αντι του ==), επειδή το literal_constant = variable_name δεν είναι έγκυρη έκφραση του τελεστή = (απαιτέιται lvalue), ενώ στην περίπτωση του παραδέιγματος σου η σύνταξη είναι έγκυρη και στις δύο περιπτώσεις...
cherouvim
Script Master

Μέλος από: 13 Ιουλ 2005
Βοηθήματα: 7
Νέα: 1
Scripts: 1
Μηνύματα: 256+

Περιοχή: Athens, Greece
View users profile Visit posters website
blog linkedin twitter 
ΜήνυμαΣτις: 07 Δεκ 2007 06:55    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ναι, δεν είπα οτι είναι ίδιο. Απλά αντιστρέφοντας τα ο προγραμματιστής έχει μία επιπλέον ευκολία.

_________________
blog
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [8 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Τώρα είναι 25 Μαρ 2017 13:30 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos