Changeset a35b458 in mainline for uspace/app/redir
- Timestamp:
- 2018-03-02T20:10:49Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/redir/redir.c
r3061bc1 ra35b458 56 56 if (fclose(*stream)) 57 57 return; 58 58 59 59 *stream = NULL; 60 60 61 61 int oldfd; 62 62 errno_t rc = vfs_lookup_open(path, WALK_REGULAR | flags, mode, &oldfd); 63 63 if (rc != EOK) 64 64 return; 65 65 66 66 if (oldfd != fd) { 67 67 int newfd; 68 68 if (vfs_clone(oldfd, fd, false, &newfd) != EOK) 69 69 return; 70 70 71 71 assert(newfd == fd); 72 72 … … 74 74 return; 75 75 } 76 76 77 77 *stream = fdopen(fd, fmode); 78 78 } … … 89 89 return 0; 90 90 } 91 91 92 92 int i; 93 93 for (i = 0; i < argc; i++) 94 94 args[i] = argv[i]; 95 95 96 96 args[argc] = NULL; 97 97 98 98 rc = task_spawnv(&id, wait, argv[0], args); 99 99 100 100 free(args); 101 101 102 102 if (rc != EOK) { 103 103 fprintf(stderr, "%s: Error spawning %s (%s)\n", NAME, argv[0], … … 105 105 return 0; 106 106 } 107 107 108 108 return id; 109 109 } … … 115 115 return -1; 116 116 } 117 117 118 118 int i; 119 119 for (i = 1; i < argc; i++) { … … 146 146 } 147 147 } 148 148 149 149 if (i >= argc) { 150 150 usage(); 151 151 return -5; 152 152 } 153 153 154 154 /* 155 155 * FIXME: fdopen() should actually detect that we are opening a console … … 160 160 task_wait_t wait; 161 161 task_id_t id = spawn(&wait, argc - i, argv + i); 162 162 163 163 if (id != 0) { 164 164 task_exit_t texit; 165 165 int retval; 166 166 task_wait(&wait, &texit, &retval); 167 167 168 168 return retval; 169 169 } 170 170 171 171 return -6; 172 172 }
Note:
See TracChangeset
for help on using the changeset viewer.