|
|
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 15:45 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
Скажите, это Си такой мерзкий язык, или у меня руки кривые? Вот этот код работает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ЗЫ: памагите. Я шизонусь с этого языка нахрен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 16:39 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
судя по коду открываются два разных файла. в этом вся загвоздка. В одном есть цифирки в другом нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 16:43 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
Это разные проги. И файлики разные. Вот что в них: key 193023 257364 1 230023 257364 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 17:05 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
А в каком месте вываливается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 17:15 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
Попробовать 0) проверить, что fopen возвращает не NULL Код: plaintext 1. 2. 3. 4. 1) есть ли Код: plaintext 2) заменить %d на %ld ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 17:28 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
roman10А в каком месте вываливается? Расстановка коментариев привела меня к выводу что на fscanf. Щас попробую то, что Землекоп посоветова. Прикол в том что файл написанный программой прочитался великолепно. А вообще маразм крепчает. Попробовал вот так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 17:59 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
Попробовал. Поимел сообщение об отсутствии файла. Попробовал полный путь. Всё получилось. Теперь вопрос: почему когда этот файл был выводом такой же проги то полный путь не требовался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 18:03 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
не может быть проблемы в crlf? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 18:04 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
SarinПопробовал. Поимел сообщение об отсутствии файла. Попробовал полный путь. Всё получилось. Теперь вопрос: почему когда этот файл был выводом такой же проги то полный путь не требовался? Попробуй перед именем файла вставить "./" Линух это любит. В принципе, программа может где-нибуть менять текущий каталог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 18:09 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
А что такое crlf? Щас попробую ./ А вообще я продолжаю офигевать. Нет. Не продолжаю. Всё заработало. А вот ./ выдало file not faund. Ну тот самый, который ты добавить прдложил. ЗЫ: вывих мозга я уже получил:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 18:22 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
SarinА что такое crlf? CR первод каретки - символ с кодом 13 LF первод строки - символ с кодом 10 Некоторые системы в простых текстовых файлах разделяют строки парой CR+LF, некоторые одиночным LF. Теоретически файл созданый в одной ОС может не правильно читатья в другой. Большинство современных библиотек знает об этом приколе и автоматически подстраивается при чтении, но пишет в родном формате. SarinА вот ./ выдало file not faund. Ну тот самый, который ты добавить прдложил. Воспользуйся функцией getcwd() она даст тебе текущий каталог процесса, сравни его с предполагаемым и сделай выводы. SarinЗЫ: вывих мозга я уже получил:) На самом деле там все очень просто. Скорее всего намудрил с переменной окружения PATH и запускаешь не тот a.out про который думаешь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 19:08 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
Путь к a.out я прописываю целиком и полностью. Про crlf понял. Я эту фишку знаю. И знаю что она crlf зовётся. Просто сейчас мозги уже в таком состоянии, что не варят совсем. Думал сегодня хедер БМПшный считаю. А я файл открыть не могу. Ладно. Продолжим с сегментайшн фаултом воевать. После того как у меня всё получилось в той тестовой проге я начал возится с основной.Вот что там есть: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Когда меняешь inputFile = fopen(fileName, "r"); на inputFile = fopen("/home/T.bmp", "r"); всё нормально. А если имя файла (тож самое) вводишь в процессе исполнения то получаешь сегментайшн фаулт. Заранее спасибо всем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 19:50 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
Перед fopen поставь Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 20:01 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
судя по тому что ты собираешся читать заголовок, тебе нужно делать не "r" а "rb" сам на таком спотыкнулся очень сильно :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 20:38 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
и не fscanf а fread(&b,4,1,inputFile); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 20:39 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
А чем r от rb отличается? И что такое fread? И что это за параметры 4,1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 21:55 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
man fread :-) rb это чтение бинарного файла. а просто r - это чтение текстового. при чтении бинарного никак не интерпретируются всякие crlf и конец файла. fread(&buf, n, k, file) читает n блоков по k байт из файла file в буффер buf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 21:59 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
Кайфовая какая функция. А я уже перевёл свой проект в KDevelop. Там дёргал отладчик. Ну ща попробуем. А вообще вот что меня смущает: ведь когда я имя файла текстом в коде задавал он работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 22:08 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
SarinКогда меняешь inputFile = fopen(fileName, "r"); на inputFile = fopen("/home/T.bmp", "r"); А ты при вводе учитываешь регистр букв в имени файла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 22:20 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
Sarinведь когда я имя файла текстом в коде задавал он работал. Выложи сюда кусок кода, где вводится имя файла. И все будет ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 22:37 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
Спасибо всем большое. rb и fread помогло. Как допишу исходники сюда кину. Ведь прога GPL. И, наверное, может оказатся полезной. Решаемые задачи не тривиальны. White OwlА ты при вводе учитываешь регистр букв в имени файла? Конечно. Ведь в Линухе он учитывается. ЗемлекопВыложи сюда кусок кода, где вводится имя файла. И все будет ясно. А я пожалуй то что готово уже прям сейчас покажу: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 23:41 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Это страшный косяк. Должно быть char inputFileName[размер]; Из-за него все может рушится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 23:47 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
когда я только начал писать под FreeBSD(читай posix) я тоже начинал программу с лицензии :-) ни одна из таких программ у меня не заработала, и я понял. Сначало нужно научится писать программы, а потом, уже в написанные, можно вставить лицензию :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 23:55 |
|
||
|
Помогите найти ошибку (segmentation fault)
|
|||
|---|---|---|---|
|
#18+
а зачем вот это: "введите имя файла"? Это моветон. как говорит Землекоп "страшный" :-) в стиле студентов младших курсов захудалых пединститутов :-) делай хотя бы получение имени файла с аргументов коммандной строки. например типа так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. совсем хорошо еще проверять входной поток :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2005, 00:01 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33139164&tid=2033089]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 464ms |

| 0 / 0 |
