વ્યવહારિક રીતે સી પ્રોગ્રામિંગ અને operatingપરેટિંગ સિસ્ટમ્સની મૂળભૂત બાબતો કેવી રીતે શીખી શકાય?

પ્રોગ્રામિંગ ચિહ્ન

ત્યાં ઘણી રીતો છે પ્રોગ્રામ શીખવું, ઘણા ટ્યુટોરિયલ્સ, કોડ ઉદાહરણો, વગેરે સાથેના ઘણા વેબ પૃષ્ઠો છે. તમે પ્રોગ્રામિંગ પર વિવિધ પ્રકારના પુસ્તકો પણ શોધી શકો છો, બંને સી અને અન્ય ઘણી ભાષાઓમાં. Orનલાઇન અથવા સામ-સામે પ્રોગ્રામિંગ અભ્યાસક્રમો પણ છે જ્યાં તમે શરૂઆતથી અદ્યતન સ્તર સુધી તમારું પોતાનું સ softwareફ્ટવેર બનાવવા માટે આ તકનીકોને સમજવાનું શરૂ કરી શકો છો.

તે પછી, બીજી બાજુ, કેટલાક માઇક્રોપ્રોસેસર્સ અથવા માઇક્રોકન્ટ્રોલર્સવાળા કેટલાક શારીરિક ટ્રેનર્સ છે જે તમે આ કલાને લગભગ રમવા અને પ્રોજેક્ટો બનાવીને શીખવા માટે પ્રોગ્રામ કરી શકો છો. તેનું ખૂબ જ સારું ઉદાહરણ રાસ્પબેરી પી જાતે જ છે, પરાલાઝ બોર્ડ્સ, અથવા રાષ્ટ્રીય જે તમે એમકેઇલેક્ટ્રોનિક્સ સ્ટોર અથવા જાણીતા બોર્ડમાં શોધી શકો છો. Arduino, શરૂઆતથી. તેમ છતાં, જો તમે સ softwareફ્ટવેર વિકાસ પર વધુ ધ્યાન કેન્દ્રિત કરવા માંગતા હો, તો હું હંમેશાં તે જ સલાહ આપું છું: કોડ વાંચો અને સંશોધિત કરો.

આ પોસ્ટમાં હું તમને પ્રોગ્રામિંગ ક્લાસ આપવાનો પ્રયત્ન કરીશ નહીં, કારણ કે તે એક વિષય છે જે હું આ જેવા ઘણા લેખો માટે આપું છું પ્રોગ્રામિંગની મૂળભૂત બાબતો સૌથી અદ્યતન પ્રોગ્રામિંગ પર. હું તમને તમારા જ્ strengthenાનને મજબૂત બનાવવા માટે કેટલાક સંસાધનો અથવા રીત આપવા માંગું છું. અને હું તમને ખાતરી આપું છું કે તેઓ ખૂબ અસરકારક છે. ઉપરાંત, તમે જાણો છો કે તમે કોઈપણ GNU / Linux ડિસ્ટ્રો સાથે પ્રારંભ કરી શકો છો, જેમ કે ટેક્સ્ટ એડિટર, અથવા IDE, GCC અને GDB જેવા પ્રોગ્રામિંગ માટેના જરૂરી પેકેજો સાથે, જો તમે ડિબગ કરવા માંગતા હો ... અથવા કેટલાકનો ઉપયોગ પણ કરો. પ્રોગ્રામરો માટે વિતરણ. મને એમ પણ લાગે છે કે તમે તમારા જેવા નિકાલ પરના આ પ્રકારનાં ટૂલ્સને જાણે છે અથવા જાણવું જોઈએ.

કેવી રીતે શરૂ કરવું

Screenન-સ્ક્રીન સ્રોત કોડ

તમે શોધી શકો છો કોડ સ્નિપેટ્સ નેટવર્કમાં લાખો લોકો, એટલે કે કોડના ટુકડાઓ કે જેનો ઉપયોગ ખૂબ જ વિશિષ્ટ કાર્યો કરવા માટે કરી શકાય છે અથવા તેમાં ફેરફાર કરી શકાય છે. આ સ્રોત કોડ્સ શીખવા માટેનો આધાર છે, કારણ કે તે ખૂબ જ મૂળભૂત કાર્યો છે જે તમને પ્રોગ્રામ્સ કેવી રીતે કાર્ય કરે છે તે સમજવામાં સહાય કરશે અને તમે કેટલાક પરિમાણોને તેમાં કંઈક અલગ કરવા માટે સુધારી શકો છો. અને તે જ તે શરૂ થાય છે!

જેમ જેમ તમે આગળ વધશો, તમે તેમાં કૂદી શકો છો સ્રોત કોડ વાંચો, જો સારી ટિપ્પણી કરવામાં આવે તો તે તમારા જ્ forાન માટે ખાસ કરીને પૌષ્ટિક રહેશે. દુર્ભાગ્યે બધા વિકાસકર્તાઓને તેઓ લખે છે તે લીટીઓ પર ટિપ્પણી કરવાની સારી ટેવ હોતી નથી, અને કેટલાક કિસ્સાઓમાં ટિપ્પણીઓ દુર્લભ અથવા મૂંઝવણભર્યા હોય છે પણ અનુભવી લોકો માટે. પરંતુ સદભાગ્યે આપણી પાસે સમુદાયનો મોટો ભાગ છે જે તેમના પ્રોજેક્ટ્સ પર સારી ટિપ્પણી કરે છે.

પ્લેટફોર્મ જ્યાં સ softwareફ્ટવેર કોડ GitHubઉદાહરણ તરીકે, તેમ છતાં ઘણું વધારે છે, તે શાણપણના ખૂબ જ મહત્વપૂર્ણ સ્રોત છે. હકીકતમાં, હું ભલામણ કરું છું કે એકવાર તમે સ્નિપેટ્સ અથવા તમારા નાના પ્રોગ્રામ્સ સાથે થોડી આવર્તન મેળવ્યા પછી, આ પ્રકારના પ્લેટફોર્મ પર જાઓ અને સરળ પ્રોજેક્ટ્સના સ્રોત કોડને accessક્સેસ કરો. વિશિષ્ટ કોડ શોધવા માટે તમે ફિલ્ટર અને શોધ એંજિન કાર્યોનો ઉપયોગ કરી શકો છો પ્રોગ્રામિંગ ભાષા, કેવી રીતે C અને તે પછી એક સરળ પસંદ કરો.

થોડું થોડું કરીને તમે જઇ શકો છો કાર્યક્રમોની જટિલતામાં વધારો તમારા જ્ knowledgeાનને એકદમ અદ્યતન સ્તરે વધારવા માટે. ઘણી બધી લાઇનો સાથેના પ્રોજેક્ટ્સથી પ્રારંભ કરશો નહીં, અથવા આ મોટી રકમનો કોડ શું છે અથવા તે શું કરે છે તે સમજીને તમે નિરાશ થશો. તે થોડા ડઝન લાઇનોના નાના પ્રોગ્રામ્સથી શરૂ થાય છે, ત્યારબાદ 100 અથવા તેથી વધુ થોડા લોકો માટે, જ્યારે સુધી તમે થોડું થોડું વધારે જટિલ પ્રોગ્રામ્સ સુધી પહોંચશો નહીં.

આ ઉપરાંત, હું તમને એવા પ્રોગ્રામ્સ જોવા માટે સલાહ આપીશ જેનો તમે ઉપયોગ કરવાના સંદર્ભમાં ખૂબ સારી રીતે જાણો છો. ઉદાહરણ તરીકે, કલ્પના કરો કે તમે કોઈ ચોક્કસ ઓપન સોર્સ ટેક્સ્ટ એડિટરનો ઉપયોગ કરી રહ્યાં છો અથવા કેલ્ક્યુલેટર. આ પ્રોગ્રામ વ્યવહારમાં શું કરે છે તે જાણવાનું તમારા માટે સ્રોત કોડની લાઇનોને સંબંધિત કરવાનું સરળ બનાવશે કે જે તમે પ્રોગ્રામમાં કરેલા કાર્યો સાથે જોશો. બીજી બાજુ, જો તમે કોઈ કોડ પસંદ કરો છો જેના વિશે તમને કોઈ ખ્યાલ નથી, ફક્ત તમારા મૂળભૂત પ્રોગ્રામિંગ જ્ ofાનની સહાયથી અને કોડ ફાઇલોમાં તમને મળતી ટિપ્પણીઓ પર્યાપ્ત નહીં હોય.

ઉદાહરણ તરીકે, માંની ગણતરીના કાર્યક્રમો માટે મારી શોધમાં બતાવેલ બીજા ઉદાહરણ પર એક નજર નાખો સી ભાષા નીચેની છબી. વર્ણન બતાવે છે કે તે આદેશ વાક્ય પ્રોગ્રામ છે જે એક સરળ કેલ્ક્યુલેટર લાગુ કરે છે. આ પ્રારંભ કરવા માટે એક સારો કોડ છે, ફક્ત કોડની સરળતાને કારણે નહીં, પરંતુ ટેક્સ્ટ-આધારિત હોવાને કારણે તમારી પાસે GUI, વગેરે સંબંધિત કોડ ફાઇલો નહીં હોય, જે તમને ખલેલ પહોંચાડે છે અને શીખવાનું તદ્દન મુશ્કેલ બનાવે છે:

Github

જો આપણે તેનો પ્રોજેક્ટ જોવા માટે આ પ્રોજેક્ટમાં જઈશું, તો પહેલા આપણે વિકાસકર્તાઓએ આ પ્લેટફોર્મ પર અપલોડ કરેલી ફાઇલો શોધીશું. લાઇસન્સ લાઇસન્સની વિગતોની જેમ, માહિતીની શ્રેષ્ઠતા સાથેની ફાઇલ, README, વગેરે. પરંતુ નોંધ લો કે ત્યાં છે હેડર ફાઇલો હેલ્પર્સ. અને સ્ટ્રક્ટ. જેવા, આ બંને મહત્વપૂર્ણ છે, અને બે. સી પણ, જેનો આ પ્રોગ્રામ માટે વાસ્તવિક સી સ્રોત કોડ છે:

હેડરો

જો આપણે હેડરમાંથી એક અથવા. એચ accessક્સેસ કરીશું, તો આપણે જોશું કે તે ઘણી સરળ લાઇનો વિના, એક સરળ પ્રોગ્રામ છે. તમને આ પ્રકારની ફાઇલો ઘણી વાર મળશે, સિવાય કે તે એકદમ સરળ પ્રોગ્રામ હોય કે જેને તેની જરૂર નથી, પરંતુ તે એક છે ફાઇલ શામેલ કરો જ્યાં કેટલીક વિગતો અથવા અતિરિક્ત ફાઇલો શામેલ છે કે કમ્પાઇલરે પ્રોગ્રામના અંતિમ બાઈનરીની રચના માટે પ્રક્રિયા કરવી આવશ્યક છે.

હેડર ફાઇલમાં તમને સીધા વર્ગ ઘોષણા, સબરોટાઇન્સ, નિર્ધારિત ચલો અને અન્ય મળશે. કયારેક .આ છે પુસ્તકાલયો કે જેનો મુખ્ય હેતુ ફાઇલ (.c) થી દરેક સમય માટે જરૂરી હોય ત્યારે દરેક સંરચનાને પુનરાવર્તિત કર્યા વિના આ હેડરોની અંદર જે ઘોષિત કરવામાં આવે છે તેનો સીધો સંદર્ભ બનાવવામાં તમે ઉપયોગ કરી શકો છો:

કોડ હેડર

સ્રોત કોડના કિસ્સામાં, જેમ કે calc.c ફાઇલ અમારા ઉદાહરણમાંથી, તમને વધુ લાઇનો મળશે. લગભગ 400 કંઈક, અને આ વિશિષ્ટ કિસ્સામાં તેમની ટિપ્પણી કરવામાં આવી નથી. જે કોડને સમજવામાં ગંભીરતાથી અવરોધે છે. જો કે, કેલ્ક્યુલેટર જેટલો સરળ પ્રોગ્રામ હોવાથી, તમે સમસ્યાઓ વિના તેને વાંચી અને સંશોધિત કરી શકો છો, કારણ કે તે સાહજિક હશે:

યાદ રાખો કોડ વાંચો અને તેમાં ફેરફાર કરો. તે પ્રોગ્રામ શીખવાની ચાવી છે શ્રેષ્ઠ રીતે ...

એક વધુ પગલું: કર્નલ

લિનક્સ કર્નલ

હવે, જ્યારે તમે સી ભાષામાં પહેલેથી જ કેટલીક મૂળભૂત પ્રોગ્રામિંગ કુશળતા મેળવી લીધી છે, ત્યારે તમે આગળ એક પગલું ભરી અને આકર્ષક દુનિયામાં પ્રવેશી શકો છો operatingપરેટિંગ સિસ્ટમ્સ અને કમ્પ્યુટર આર્કિટેક્ચર્સ. આ માટે કમ્પ્યુટર્સ કેવી રીતે કાર્ય કરે છે તેના વિશે તમને કંઈક અંશે ઉચ્ચ જ્ knowledgeાન હોવું આવશ્યક છે, પરંતુ ફરીથી હાલના ખુલ્લા સ્રોત પ્રોજેક્ટ્સ અમને ઘણું મદદ કરી શકે છે.

વિશ્લેષણ કર્નલ સ્રોત કોડ તે આપણને operatingપરેટિંગ સિસ્ટમ્સની આ દુનિયા કેવી રીતે કાર્ય કરે છે તે વધુ સારી રીતે સમજાવી શકે છે, અને સી પ્રોગ્રામિંગમાં આપણા "ડોક્ટરેટ" મેળવવા માટે તે એક માસ્ટર ક્લાસ પણ હશે, કારણ કે તે મુખ્ય શબ્દોમાં કંઈક છે. તમને લાગે છે કે આ શીખવા માટેનો શ્રેષ્ઠ પ્રોજેક્ટ એ લિનક્સ કર્નલ હશે.

તેના બદલે, વર્તમાન પરિમાણો નવીનતમ લિનક્સ કર્નલ આવૃત્તિઓ તેઓ મોટાભાગના પ્રાણીઓ માટે સમજી શકાય તેવું ખૂબ જટિલ છે. ખાસ કરીને માટે મોટી સંખ્યામાં કોડ અન્ય સબસિસ્ટમ્સ અને ડ્રાઇવરો માટે કે તમે કર્નલમાં શું છે તે ઉમેરવામાં જોશો. તેનાથી તમે વિચારી શકો છો કે કર્નલ.આર.જી.માં તમે કર્નલના વધુ પ્રાચીન સંસ્કરણો શોધી શકો છો, જેમ કે "historicતિહાસિક" જ્યાં કેટલાક "જૂના-સંસ્કરણો" જેવા છે. લિનક્સ 0.01, પ્રથમ જેમાં કોડ ઘણું ઓછું અને વિશ્લેષણ કરવા માટે સરળ છે.

કર્નલ.આર. કેપ્ચર

અને છતાં સીન કોડ કે જે તમને લીનક્સ કર્નલમાં મળશે તે ઉત્કૃષ્ટ છે, હું સામાન્ય રીતે ઘણા પ્રસંગો પર ભાગ્યે જ ટિપ્પણી કરવામાં આવે છે તે હકીકતને કારણે લીનક્સ કર્નલની ભલામણ કરતો નથી. હું એમ કહી રહ્યો નથી કે વિકાસકર્તાઓની ખરાબ ટિપ્પણી નીતિ છે, પરંતુ તે કોઈના માટે શરૂઆતમાં મૂંઝવણમાં હોઈ શકે છે. તેથી પછીથી લિનક્સ કર્નલ અને એલકેએમએલ સાચવો ...

અને તે સાચું છે કે તેઓ અસ્તિત્વમાં છે કેટલાક ખૂબ સારા પુસ્તકો અને કર્નલ, મોડ્યુલો અને ડ્રાઇવરો વિશે શીખવા માટેના અભ્યાસક્રમો, પરંતુ શરૂ કરવાનું શ્રેષ્ઠ સ્થળ નહીં. કેટલાક ઉદાહરણો છે (તેમાંના કેટલાક, ગ્રેગની જેમ, તમે મફતમાં ડાઉનલોડ કરી શકો છો, કારણ કે તેઓ મુક્ત થયા છે):

  • લિનક્સ કર્નલ ડેવલપમેન્ટ 3 જી આવૃત્તિ રોબર્ટ લવ દ્વારા.
  • લિનક્સ વર્ચ્યુઅલ મેમરી મેનેજરને સમજવું મેલ ગોમેન દ્વારા, જોકે બાદમાં ફક્ત કર્નલ મેમરી મેનેજમેન્ટ પર ધ્યાન કેન્દ્રિત કર્યું છે.
  • લિનક્સ ડિવાઇસ ડ્રાઇવર્સ 3 જી આવૃત્તિ ગ્રેગ ક્રોહ-હાર્ટમેન દ્વારા, જોકે તે 2.6 કર્નલ પર કેન્દ્રિત છે, પરંતુ તે ડ્રાઇવરો અને કર્નલ મોડ્યુલોને સમજવાનું એક મહાન કાર્ય છે.
  • ટૂંકમાં લિનક્સ કર્નલ ગ્રેગ ક્રોહ-હાર્ટમેનનું એક બીજું મહાન છે જે તમને વધુ વૈશ્વિક દ્રષ્ટિ આપે છે.

તમે તમારી પોતાની બહાર કેટલીક ખૂબ જ રસપ્રદ વેબસાઇટ્સ પણ શોધી શકો છો માહિતી અને દસ્તાવેજીકરણ જે તમે કર્નલ.આર.જી. પર શોધી શકો છો, જેમ કે:

  • https://kernelnewbies.org/: નો સમુદાય છે મહત્વાકાંક્ષી કર્નલ વિકાસકર્તાઓ જ્યાં તમને એવી માહિતી મળી શકે છે જે સોનાની કિંમતની છે.
  • http://matt.might.net/articles/what-cs-majors-should-know/: વિશે ઘણી સારી માહિતીવાળી બીજી વેબસાઇટ કમ્પ્યુટિંગ.

અન્ય એક મહાન પ્રોજેક્ટ્સ જે હજી પણ અધ્યયન કરવામાં આવી રહ્યા છે અને શિક્ષણ તરીકે સેવા આપી રહ્યા છે યુનિક્સ 6 ઠ્ઠી, જેમ કે પુસ્તકોમાં અસાધારણ રીતે જેના કોડનું વિશ્લેષણ કરવામાં આવે છે UNIX 6 ઠ્ઠી આવૃત્તિ પર સિંહોની કમેન્ટરીજ્હોન લાયન્સ દ્વારા. હું તમને તે અન્ય વૈકલ્પિક વિચાર તરીકે છોડીશ, જો કે હું નીચેની ભલામણ કરવાનું ચાલુ રાખું છું જેના પર હું ટિપ્પણી કરવા જઇ રહ્યો છું ...

પરંતુ મને લાગે છે કે તમારી પાસે તમારી પાસેનો શ્રેષ્ઠ સ્રોત એ MINIX સ્રોત કોડનો અભ્યાસ અને વિશ્લેષણ કરવાનું છે. તે ખૂબ જ સરળ સિસ્ટમ છે જેમાં લિનક્સની શરૂઆતમાં પ્રેરણા હતી પરંતુ જે શીખવા અને અભ્યાસ માટે વિશેષ કલ્પના કરવામાં આવી છે. ભવિષ્યના operatingપરેટિંગ સિસ્ટમ આર્કિટેક્ટ્સને શીખવા માટેના હેતુથી, તેનો જે પ્રતિસાદ છે તે ફક્ત શરૂ થનારાઓ માટે અસાધારણ છે.

વધુ મહિતી - MINIX3

ત્યાં તમને પ્રોજેક્ટ વિશે ઘણી માહિતી અને દસ્તાવેજો મળશે. અને તમે ડાઉનલોડ કરી શકો છો .પરેટિંગ સિસ્ટમ પોતે, પણ તમારી પાસે એક સારું વિકિ પણ છે જ્યાં વિકાસકર્તાઓ માટેના પાઠો પણ છે. પરંતુ, કેમ કે તે સી શીખવાની અને operatingપરેટિંગ સિસ્ટમની રચના કેવી રીતે કરવામાં આવે છે તેનું વિશ્લેષણ કરવા વિશે છે, તેથી હું તમને MINIX 1 સ્રોત કોડનું પ્રથમ સંસ્કરણ ડાઉનલોડ કરવા માટે સીધા જ સંદર્ભિત કરું છું:

સ્ત્રોત કોડ - MINIX1

ઉદાહરણ તરીકે, જો તમે જાઓ મુખ્ય ફાઇલતમે જોશો કે અહીંનો કોડ તમે તેને લિનક્સ અથવા કેલ્ક્યુલેટર પ્રોગ્રામમાં કેવી રીતે મેળવશો તેનાથી ખૂબ જ અલગ છે જેનો મેં આ પોસ્ટની શરૂઆતમાં ઉદાહરણ તરીકે ઉપયોગ કર્યો છે. આ કિસ્સામાં, તમે જોશો કે ટિપ્પણીઓની સંખ્યા વધુ પ્રમાણમાં છે:

MINIX સ્રોત કોડ

અહીં, લગભગ દરેક લીટી અથવા દરેક ટુકડો છે ટિપ્પણી કરી. તમારા બનાવે છે વાંચન અને સમજણ. હું ફરીથી આગ્રહ કરું છું, તે ફક્ત વાંચવા અને સમજવા માટે જ નથી, તે સુધારણા વિશે પણ છે. તમારા પોતાના ફેરફારો અને પરીક્ષણો કરો, પછી કમ્પાઇલ કરો અને પરિણામ જુઓ. તે તમને શોધી શકે તે શ્રેષ્ઠ પ્રોગ્રામિંગ માસ્ટર હશે. હું તમને ખાતરી આપું છું, જેમ કે હું હંમેશાં મારા વિદ્યાર્થીઓને કહું છું, કોડ વાંચવું અને તેમાં ફેરફાર કરવો એ શ્રેષ્ઠ કમ્પ્યુટર વર્ગ છે જે તમે જાવ છો ...

તમે ફક્ત operatingપરેટિંગ સિસ્ટમની કર્નલનું વિશ્લેષણ કરી શકશો નહીં, પરંતુ અન્ય સહાયક તત્વો પણ કે જે સંપૂર્ણ operatingપરેટિંગ સિસ્ટમ બનાવે છે અને પણ આદેશો જે તમે શેલમાં ચલાવી શકો છો. એલ.એસ., બિલાડી, સી.પી., ગ્રેપ, ઇકો, વગેરે જેવા આદેશો કેવી રીતે તમે દરરોજ ચલાવો છો, તે પણ સારી રીતે ટિપ્પણી કરેલા કોડ વર્ક સાથે, "અંદરથી" શીખવાની આ એક સરસ રીત છે ...

આદેશ સ્રોત કોડ - MINIX1

છેલ્લે, હું એક વ્યક્તિને ઓળખું છું જેણે શરૂઆતથી બનાવેલી કર્નલ બનાવી છે. તેનું નામ લુઇસ છે અને તમે તેના સરનામાં પર તેનો પ્રોજેક્ટ શોધી શકો છો GitHub, બીજું સારું અભ્યાસ ઉદાહરણ છે કે જે હું ભલામણ કરીશ. તેની સિસ્ટમ કહેવામાં આવે છે ભારત, તે મૂળભૂત જ્ acquireાન પ્રાપ્ત કરવા માટે એકદમ સરળ અને સંપૂર્ણ છે. કોણ જાણે? કદાચ તમે કર્નલ બનાવવાની હિંમત માટે આગળના ...

જો તમારે શીખવું હોય તો એસેમ્બલર અથવા એએસએમ, નીચા સ્તરે સી ટુ પ્રોગ્રામ અને ખાસ કરીને operatingપરેટિંગ સિસ્ટમ્સ માટે એક રસપ્રદ ભાષા ..., ત્યાં ખૂબ રસપ્રદ પ્રોજેક્ટ્સ પણ છે જેમ કે કેસ કોલિબ્રીઓએસ, એસેમ્બલરમાં લખેલી એક મફત સિસ્ટમ. એએસએમમાં ​​હોવાથી, તે વધુ જટિલ છે, પરંતુ તે હાર્ડવેરના સંદર્ભમાં મશીનો વધુ ગા in સ્તરે કેવી રીતે કાર્ય કરે છે તેનો સારો ખ્યાલ આપે છે.

ટ્યુટોરિયલ: કાગળ પર તેનો અભ્યાસ કરવા માટે સ્રોત કોડ છાપો

રંગબેરંગી સ્રોત કોડ સાથે પીડીએફ

જો તમે એવા લોકોમાંથી એક છો કે જે સ્ક્રીન સામે કલાકો ગાળવાનું પસંદ ન કરતા હોય અને તેની સામે જોતા હોય, તો તમે કાગળને પસંદ કરો છો. હું તમને એક નાનું ટ્યુટોરિયલ બતાવવા જઈ રહ્યો છું કે તમે આ બધા સ્રોત કોડ કે જેના વિશે અમે વાત કરી છે અથવા તમે વિશ્લેષણ કરવા માંગો છો તે છાપી શકો છો. જેથી તમે કરી શકો છો પ્રકાશિત વાક્યરચના સાથે પીડીએફ રાખો તમારા પ્રિંટર પર છાપવા અને કાગળ પર વાંચવા માટે તૈયાર છે, જ્યાં તમે તમારી annનોટેશંસ અને વધુ કરી શકો છો.

આ કરવા માટે, પ્રથમ વસ્તુ હશે જરૂરી પેકેજો સ્થાપિત કરો અમારા ડિસ્ટ્રોમાં:

 

sudo apt-get install texlive-latex-extra latex-xcolor textlive-latex-recommended

એકવાર અમારી પાસે આ ફાઇલો છે, આપણે લેટેક્ષનો ઉપયોગ કરીશું સ્રોત કોડને પીડીએફમાં પરિવર્તિત કરવા માટે, અને આ માટે આપણે આ સ્ક્રિપ્ટ સેવ કરવી જોઈએ, તેને એક્ઝેક્યુશન પરમિશન આપવી જોઈએ અને તેને બાશમાં એક્ઝેક્યુટ કરવું જોઈએ

#!/usr/bin/env bash

tex_file=$(mktemp) ## Random text file name

cat<<EOF >$tex_file   ## Print the text file header
\documentclass{article}
\usepackage{listings}
\usepackage[usenames,dvipsnames]{color}  %% Allow color names
\lstdefinestyle{customasm}{
  belowcaptionskip=1\baselineskip,
  xleftmargin=\parindent,
  language=C++,   %% Change this to whatever you write in
  breaklines=true, %% Wrap long lines
  basicstyle=\footnotesize\ttfamily,
  commentstyle=\itshape\color{Gray},
  stringstyle=\color{Black},
  keywordstyle=\bfseries\color{OliveGreen},
  identifierstyle=\color{blue},
  xleftmargin=-8em,
}        
\usepackage[colorlinks=true,linkcolor=blue]{hyperref} 
\begin{document}
\tableofcontents

EOF

find . -type f ! -regex ".*/\..*" ! -name ".*" ! -name "*~" ! -name 'src2pdf'|
sed 's/^\..//' |                 ## Change ./foo/bar.src to foo/bar.src

while read  i; do                ## Loop through each file
    name=${i//_/\\_}             ## escape underscores
    echo "\newpage" >> $tex_file   ## start each section on a new page
    echo "\section{$i}" >> $tex_file  ## Create a section for each filename

   ## This command will include the file in the PDF
    echo "\lstinputlisting[style=customasm]{$i}" >>$tex_file
done &&
echo "\end{document}" >> $tex_file &&
pdflatex $tex_file -output-directory . && 
pdflatex $tex_file -output-directory .  ## This needs to be run twice ## for the TOC to be generated  </pre><pre>

સાથે ફાઇલમાં સેવ કર્યા પછી નામ pdf.sh, તમે તેને પરવાનગી આપી શકો છો અને તેને સરળ રીતે ચલાવી શકો છો:

chmod +x pdf.sh
./pdf.sh

અને પરિણામ વર્તમાન ડિરેક્ટરીની સ્રોત કોડ ફાઇલોને વધુ સારી રીતે વાંચવા માટે રંગમાં હાઇલાઇટ કરેલા ટેક્સ્ટ સાથેનો પીડીએફ હશે. પીડીએફ ડોક્યુમેન્ટનું નામ હશે all.pdf. હવે તે કાગળ પર મૂકવા માટે તેને તમારી પ્રિંટ કતારમાં મૂકવા માટે તૈયાર છે.

માર્ગ દ્વારા, એકમાત્ર સમસ્યા તે છે સ્રોત કોડ ફાઇલો તમે જ્યાં આ સ્ક્રિપ્ટ ચલાવો છો તે ડિરેક્ટરી જેમાં તેમના નામમાં જગ્યાઓ છે તે આ સ્ક્રિપ્ટ સાથે કામ કરશે નહીં. તેથી જો ત્યાં કોઈ હોય તો તમે તેમના નામમાં ફેરફાર કરી શકો છો અથવા તેમને ટેકો આપવા માટે સ્ક્રિપ્ટ બદલી શકો છો ...

તમારી ટિપ્પણી કરવાનું ભૂલશો નહીં, હું તમને તેના વિશેના કોઈપણ પ્રશ્નોના જવાબ આપવા માટે અથવા તમે પોસ્ટને સુધારવા માટેના કોઈપણ પ્રતિસાદ સાંભળવા માટે આનંદ કરીશ. અને હું આશા રાખું છું કે તે તમને આ વિશ્વમાં પ્રારંભ કરવા માટે માર્ગદર્શિકા તરીકે કાર્ય કરશે ...