Bladeren bron

Did some stuff.

themultiplexer 8 jaren geleden
bovenliggende
commit
7439c327ab
1 gewijzigde bestanden met toevoegingen van 21 en 7 verwijderingen
  1. 21
    7
      hw6/task1/src/main.rs

+ 21
- 7
hw6/task1/src/main.rs Bestand weergeven

@@ -13,23 +13,37 @@ fn main() {
13 13
 
14 14
     let arguments: Vec<String> = args().collect();
15 15
 
16
+    const BUFFER_SIZE : usize = 256;
17
+
16 18
     if arguments.len() > 2 {
17 19
 
18 20
         let (reader, writer) = pipe().unwrap();
19
-        let msg = "hello from parent";
21
+        let numbers = arguments[1..].to_vec();
22
+
20 23
         let pid = fork();
21 24
         match pid {
22 25
             Ok(Child) => {
23
-                let mut read_buf = [0u8; 32];
26
+                let mut read_buf = [0u8; BUFFER_SIZE];
24 27
                 let bytes_read = read(reader, &mut read_buf).unwrap();
25
-                let msg_received = str::from_utf8(&read_buf[0..bytes_read]).unwrap();
26
-                println!("{} received from parent:{:?}", getpid(), msg_received);
28
+                let msg_received = str::from_utf8(&read_buf[0 .. bytes_read]).unwrap();
29
+
30
+
31
+                match sum_strings(split_into_strings(msg_received)) {
32
+                    Ok(res) => {
33
+                        println!("{}", res)
34
+                    },
35
+                    Err(_) => {},
36
+                }
37
+
38
+                //let result = sum_strings(numbers);
39
+
27 40
             }
28 41
 
29 42
             Ok(Parent { child }) => {
43
+                for s in numbers {
44
+                    write(writer, concatenate_strings(s, " ").as_bytes());
45
+                }
30 46
 
31
-                println!("sending to child with pid:{}", child);
32
-                write(writer, msg.as_bytes()).unwrap();
33 47
 
34 48
                 if let Ok(ws) = wait() {
35 49
                     if let WaitStatus::Exited(child_pid, exit_code) = ws {
@@ -85,4 +99,4 @@ fn mul_strings(v: Vec<&str>) -> Result<i32, &str> {
85 99
         }
86 100
     }
87 101
     Ok(prod)
88
-}
102
+}

Laden…
Annuleren
Opslaan