![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
BladzheR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 15.12.2013 Репутация: нет Всего: нет |
Здравствуйте!
Пишу систему обмена файлами,сервер-клиент. Подскажите пожалуйста,не могу разобраться почему не происходит удаление файла в функции "deleteFile" пишет remove:: "No such file or directory"?Уже много вариантов перепробовал... Если прописать путь до файла вручную в сам remove,то файл удаляется... + хотелось бы,по возможности,узнать какие-нибудь советы и т.д. Листинг Server-Client: http://pastebin.ru/SMTM4ev6 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Видимо потому что fgets читает строку вместе с символом новой строки ('\n'), и использует для формирования имени файла вместе с этим символом. Я очень сомневаюсь, что файл у вас называется "Дима_Пряхин-новая_религия(copy).mp3\n"
![]() |
|||
|
||||
svlary |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 8.9.2009 Репутация: 4 Всего: 4 |
Это неверно. Можете запустить вот эту программульку и посмотреть, что она печатает:
На мой взляд, ошибка заключается в том, что полное имя файла собирается в переменной buf1 (строка 239), а вызов функции удаления выполняется с параметром buff, который НЕ является полным путём. Кстати говоря, конкатенация символа '\0' в строке 238 не нужна. Этот символ и так присутствует во всех строках, которые формируют стандартные программы работы со строками. |
||||
|
|||||
BladzheR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 15.12.2013 Репутация: нет Всего: нет |
xvr,svlary, спасибо,я вчера заменил fgets на fgetc и все заработало.
Так же,к сожалению, пока никак не могу разобраться почему зависает соединение при добавлении файла на сервер в функции "int addFile(int sock);" Сам файл на сервер передаётся и после соед.висит.Помогает только Ctrl + C. Код "int addFile(int sock);" аналогичен коду в функции "int downloadFile(int sock) " - там все работает нормально,сервер передаёт файл клиенту... Может быть я что-то не заметил? |
|||
|
||||
xvr |
|
||||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Это верно. gets и fgets по разному ведут себя с символом конца строки:
И это тоже верно, не заметил сразу ![]() Добавлено через 5 минут и 4 секунды
Это как раз элементарно: Ваш цикл -
Смотрим описание recv -
|
||||||||||
|
|||||||||||
BladzheR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 15.12.2013 Репутация: нет Всего: нет |
xvr, не получается исправить,все равно зависает,либо я что-то не так делаю/понял.
Мне еще только интересно почему в функции "int downloadFile(int sock) " тот же код работает,а в этой функции зависает ... |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
в ней send, а recv пока не примет BUF_SIZE не успокоиться... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
svlary |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 8.9.2009 Репутация: 4 Всего: 4 |
Да, Вы правы! Добавлено через 5 минут и 16 секунд Не совсем так... Возможен режим "сообщений" :
Ну я подробно не буду это обсуждать, так как сам не пользовался... |
|||
|
||||
ajtakt |
|
|||
Unregistered |
Модератор: Сообщение скрыто. |
|||
|
||||
BladzheR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 15.12.2013 Репутация: нет Всего: нет |
Всем спасибо!Система готова.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |