linux編程中遇到的Segmentation fault錯誤

昨天編程的時候,遇到了Segmentation fault錯誤。使用GDB調試時才發現的,順便說下。習慣了圖形介面式的調試工具,用命令列確實還是不習慣。關於此錯誤問了下Google,一搜一大篇,看來是一個很常見的問題。簡單來講,這個錯誤就是因為非法訪問了系統中的記憶體而導致的錯誤,比如一些系統中關鍵記憶體地區。那我的錯誤是怎麼導致的呢?原來我在定義一個char類型的指標,然後就直接對這個指標進行字串的相關操作。比如:char *c1;for(i=0; i<n;i++){ *c1 =

【Linux 驅動】第六章 進階字元驅動程式操作 —-阻塞型I/O

      序言:試想如果在驅動方法中的read/write中,當資料不可用時,使用者可能調用read,當輸出緩衝區滿時,裝置並未準備好接受資料,這種情況下驅動程式可以阻塞該進程,並且置入休眠狀態直到滿足條件。一, 休眠             當一個進程休眠時,它會被標記為一種特殊狀態並從調度器的運行隊列中移走,直到某些情況修改了這個狀態,進程才會在任意cpu上調度,即運行該進程。   在linux下,為了讓進程安全的進入休眠狀態,有兩條規則需要牢記:        

【Linux 驅動】第六章 進階字元驅動程式操作—-poll,select,epoll

一,poll        允許進程決定是否可以對一個或者多個開啟的檔案做非阻塞的讀取或者寫入(但是請注意select自身會阻塞進程知道某個描述符滿足條件或者逾時),常常用於那些要使用多個輸入或者輸出資料流而又不會阻塞於其中任何一個流的應用程式中,比如telnet程式,需要2個輸出,2個輸入資料流而又不希望阻塞。       unsigned int (*poll)(struct  file *filp,poll_table  *wait);//把當前的檔案指標掛到裝置內部定義的等待

【Linux 驅動】第七章 時間 延遲及延緩操作 (例子詳解二)

本文所涉及實驗為博文http://blog.csdn.net/tianshuai11/article/details/7465587中樣本,請先閱讀上述博文,然後消化以下例子一,模組方法        jiq.c#include <linux/module.h>#include <linux/moduleparam.h>#include <linux/init.h>#include <linux/sched.h>#include

【Linux 驅動】第六章 進階字元驅動程式操作 —-ioctl

一、ioctl       1)概念:#include<sys/ioctl.h>       2)功 能: 控制I/O裝置 ,提供了一種獲得裝置資訊和向裝置發送控制參數的手段。用於向裝置發控制和配置命令 ,有些命令需要控制參數,這些資料是不能用read / write 讀寫的,稱為Out-of-band資料。也就是說,read / write 讀寫的資料是in-band資料,是I/O操作的主體,而ioctl 命令傳送的是控制資訊,其中的資料是輔助的資料。    3)用 法: int

【Linux】ubuntu使用中的各種困難及解決方案(使用筆記)

一,快速鍵顯示案頭:Ctrl+Alt+D已最小化的視窗:Alt+F9已最大化的視窗:Alt+F10關閉當前視窗:Alt+F4二、Ubuntu NetBeans中文亂碼解決辦法在$JAVA_HOME/jre/lib/fonts目錄下建立一名為fallback的目錄將一可顯示中文的字型放到fallback目錄下,可以到Ubuntu字型目錄(/usr/share/fonts)去複製一份或者用ln命令做一個永久連結到該目錄(註:軟連結無效)再運行NetBeans(or

【彙編】Linux 下組譯工具開發

一,簡介       Linux 下用組合語言編寫的代碼具有兩種不同的形式。       1)完全的彙編代碼            指的是整個程式全部用組合語言編寫。儘管是完全的彙編代碼,Linux 平台下的彙編工具也吸收了 C 語言的長處,使得程式員可以使用 #include、#ifdef 等預先處理指令,並能夠通過宏定義來簡化代碼。       2)內嵌的彙編代碼            指的是可以嵌入到C語言程式中的彙編程式碼片段。雖然 ANSI 的 C

將LINUX的控制台定向到串口終端

利用串口終端作為Linux控制台,可以免去額外的鍵盤,顯示卡和顯示器,同時可將Linux主機作為一個任意用途的嵌入式黑匣。將串口終端串連到電腦的串口上並不困難,可以參考Linux的HOWTO文檔和以及inittab和agetty的協助資訊。這裡扼要地說一下。   首先,準備好一根null modem 電纜.   其次,在檔案/etc/inittab 增加下面一行。[註:如果你不採用 agetty程式,採用其他的程式如like getty_ps ,應用正確的命令文法]   

linux時間編程常用函數

首先說明時間類型分為兩種:Coordinated Universal Time(UTC):世界標準時間,也就是格林威治時間(Greenwich Mean Time, GMT)Calendar Time:日曆時間,從一個標準時間點(如:1970年1月1日0點)到此時經過的秒數來表示的時間。時間擷取#include <time.h>time_t time<time_t *tloc>//功能:擷取日曆時間,從1970年1月1日0點到現在所經曆的秒數//typedef long

修改Linux預設啟動層級或模式

在Linux中有7種啟動層級,預設是X-Window,像是Windows的視窗模式,而Linux的操作和配置一般我們都採用輸入命令的方式來完成,像DOS作業系統一樣,如何讓Linux一啟動就進入這種模式呢?     以管理員身份進入Linux,修改檔案:/etc/inittab檔案     找到“id:5:initdefault:”,其中的5就是X-Window,為預設運行層級,一般我們把5改為3即可。     一共有7種啟動層級,分別為:#   0 - halt (Do

Linux下samba伺服器架設方法.

++++++++++++++++++++++++++++++++++++++++++++++++技術資料備份++++++++++++++++++++++++++++++++++++++++++++++++0、架設Samba

linux中man文檔的分類

 例如查wait這個命令,[root@jcwkyl /]# man -k wait部分輸出如下:wait                 (1p)  - await process completionwait                 (2)  - wait for process to change statewait                 (3p)  - wait for a child process to stop or terminatewait3 [wait4]  

linux虛擬機器上網連接埠映射的多種方法

host主機系統:centos 5.3,使用升級過的2.6.23核心,安裝VirtualBox 3.0.8。host主機IP是10.60.56.90,訪問外網的網路出口為eth0。虛擬機器為vm1,ip地址192.168.56.101,網路介面為vboxnet0,使用hostonly方式。在第三台電腦10.60.56.220上進行測試連接。兩個任務:一:使虛擬機器的192.168.56.0/24網段能訪問到外網,即可以與10.60.56.220通訊。二:外網能訪問內網的伺服器,即10.60.56

linux主機用virtualbox虛擬winxp中使用USB裝置

主機作業系統是centos 5.2,安裝了virtualbox 3.2.10,在virtualbox中安裝了windows xp sp2。但是隨身碟和MP3等裝置一直無法在windows虛擬機器中使用。解決方案:http://wiki.centos.org/HowTos/Virtualization/VirtualBoxVirtualBox requires the user have write access to "usbfs" devices for USB access. As

linux下群發郵件小記

 <!--@page { size: 8.5in 11in; margin: 0.79in }P { margin-bottom: 0.08in }-->今天需要把一大堆(大約300餘條)亂糟糟的email地址整理好,並給他們發信通知一次學術會議的徵稿資訊。 整理郵件地址很容易,有一個線上網站專門做這個:http://zz.ebeibei.com/xmltool/xmlmail.html 群發郵件使用mutt+ msmtp。Mutt +

linux下各種壓縮檔的解壓方法

linux下各種壓縮檔的解壓方法.a av xv file.a.z uncompress file.z.gz gunzip file.gz.bz2 bunzip file.bz2.tar.z tar xvzf file.tar.zcompress -de file.tar.z|tar xvf file.tar.z.tar.gz/.tgz tar xvzf file.tar.gzgzip -de file.tar.gz|tar xvf file.tar.gz.tar.bz2 tar xvzf

cnBeta.COM_Linux_ Damn Small Linux v4.3 Final – 隨身碟上的Linux

導讀: Damn Small Linux是個很小的LiveCD可啟動光碟片(50M左右~),可以裝到隨身碟上.儘管它的個頭如此之小,Damn Small Linux的案頭幾乎是完整的一套.包 括xmms(支援mp3和mpeg)、FTP用戶端、基於links的web瀏覽器、電子製表軟體、電子郵件程式、英語拼字檢查、文書處理器、三個編輯器 (nedit、nvi及類似emacs的zile)、xpdf閱讀器、worker檔案管理工具、naim(支援 AIM、ICQ和IRC)、VNCviewer、SSH/

手把手教你如何建立自己的Linux系統(LFS速成手冊)

前言:  LFS是一部非常好的製作一個完整的作業系統的手冊,但LFS是屬於指導性的手冊,因此它預設的前提條件是具備一定的Linux使用經驗的使用者群,所以它在每個軟體包的安裝部分只給出了在目錄中的全部操作指令,而對於解壓縮之類的則交給使用者自己去解決,但對於很多第一次使用LFS的使用者往往會出現一些不清楚某條命令應該是在哪裡執行的問題,本文力圖從執行個體上來解釋這些問題。  本文雖然是採用VMWare Workstation

卸載Linux,恢複Windows啟動菜單

1:完全卸載。不用想多少複雜的方法,用 WINDOWS 的 FDISK 命令或是 PQ 之類的東東把 LINUX 所在的分區的刪除並重新格式化為 FAT32 格式就可以了。PQ 顯示的 LINUX 分區格式為 EXT2,而 FDISK 不認識 EXT2,只會顯示為非 DOS 分區,不過也可以刪除;2:恢複啟動。也是可用 WINDOWS 的 FDISK 命令搞定:FDISK/MBR 命令重定一下主引導記錄(MBR)就可以清除 GRUB,再用 FDISK 的第 2 項功能??設定使用中的磁碟分割 這

Linux 60 個命令檔案處理

Linux 60 個命令檔案處理Linux系統資訊存放在檔案裡,檔案與普通的公務檔案類似。每個檔案都有自己的名字、內容、存放地址及其它一些管理資訊,如檔案的使用者、檔案的大小等。檔案可以是一封信、一個通訊錄,或者是程式的源語句、程式的資料,甚至可以包括可執行檔程式和其它非本文內容。 Linux檔案系統具有良好的結構,系統提供了很多檔案處理常式。這裡主要介紹常用的檔案處理命令。 file 1.作用 file通過探測檔案內容判斷檔案類型,使用許可權是所有使用者。 2.格式 file

總頁數: 3662 1 .... 974 975 976 977 978 .... 3662 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.