CGI and FASTCGI Get all environment variables (C language)

Reference: http://blog.chinaunix.net/uid-620765-id-2084386.html

Remember the complete declaration of the C language main function?

   int main(int argc, char **argv, char **envp);
  
   这个就是c语言中main函数的完整声明, argc表示参数个数,argv表示参数字符String, and this envp represents the environment variable string. There can be more than one parameter and environment variable, so it is represented by a pointer to a string pointer.

  比如我们用C语言写了一个程序,运行在命令行下,带有2个参数

  C:> cpfile.exe c:\test.txt d:\test. txt

  那么这里的
  argc=3;
  argv[0] = “cpfile.exe”;
  argv[1] = “c:\test.txt”;
  argv[2] = “d:\test.txt”;

  在c语言中的stdlib.h中有一个
  extern char **environ; 或者
  extern char **_environ ; Statement
The parameter of this envp is actually environ.

  好,我们看看在cgi程序(其实就是一个C语言程序)里面怎么枚举这些环境变量

  先写一个html页面:(当然也可以不要)   

test</ title><script type="text/javascript">function post_submit(){ document.getElementById( "mainform" ).method = "post"; document.getElementById( "mainform" ).submit();}function get_submit() {document.getElementById( "mainform" ).method = "get"; document.getElementById( "mainform" ).submit();}</script></head><body><div class="editView">< form id="mainform" method="post" action="/printenv.cgi" enctype="multipart/form-data"> <fieldset class=""> <legend>test page</legend> <dl class=" nowrap"> <dd> <span>Name</span>: <input id="name" name="name" type="text" value="ldapserver_name"> <span>IP</span>: <input id ="ip" n ame="ip" type="text"> </dd> </dl> <dl class="nowrap"> <dd> <span>Checkbox 1</span>: <input id="checkbox1" name ="checkbox1" type="checkbox" checked/> <span> Checkbox 1</span>: <input id="checkbox2" name="checkbox2" type="checkbox" /> </dd> </dl > <dl class="nowrap"> <dd> <label for="radiotest1">Radio button 1</label> <input name="radiotest" id="radiotest1" type="radio" value="1" /> <label for="radiotest2"> Radio button 2</label> <input name="radiotest" id="radiotest2" type="radio" value="2" checked/> <label for="radiotest3" > Radio button 3</label> <input name="radiotest" id="radiotest3" type="radio" value="3"/> </dd> </dl> <dl class="nowrap" id= "dl_ca"> <dd> <span>Upload files</span> <input class="" name="uploadfile" id="uploadfile" type="file"/> </dd> </dl> <dl class ="nowrap"> <dd><span>Dropdown box</span>: <select name="dropbox" id="dropbox"> <option value="3">3</option> <option value="2 ">2</option> </select> </dd> </dl> </fieldset> <fieldset class="btnfield"> <dl class="nowrap"> <dt></dt> <dd> <a id="submit" href="javascript:;" value="Submit" onclick="javascript: post_submit();">post submission </a> <a id="submit" href="javascript:;" value="Submit" onclick="javascript: get_submit();">get submit</a> <a href="javascript:;">取消</a>			</dd>		</dl>	</fieldset></form></div></body></html></pre>
<p> 呈现效果如下: </p>
<p> <img src="/wp-content/uploadshttp:/img.voidcn.com/vcimg/static/loading.png" alt="" d="3381687" s="c29_863" t="jpg"></p > cgi程序源码: </p>
<p> /* env.c */  </p>
<pre code_snippet_id="174098" snippet_file_name="blog_20140128_2_3055523" name="code" class="cpp">#include < stdio.h> #include <stdlib.h> #include <string.h> int main() {extern char **environ; int nlen = 0; int i; char *psz_content = NULL; char **pp_env; printf( "Content-type: text/html\n\n"); for (pp_env = environ; *pp_env; pp_env++) printf("%s<br>", *pp_env); if (strcmp("GET", getenv( "REQUEST_METHOD")) == 0 ) {printf("<p>%s</p>", getenv("QUERY_STRING"));} else {nlen = atoi(getenv("CONTENT_LENGTH")); psz_content = (char * )malloc( nlen + 1 ); memset( psz_content, 0, nlen + 1 ); printf("<p>char value:</p><p>"); for (i = 0; i <nlen; i++) {psz_content[i] = fgetc(stdin); printf( "%c", psz_content[i] );} printf("</p><p>string value: %s</p>", psz_content);} return 0;} </ pre> <br> <p>If it is fastcgi, you can use the following code to print environment variables:</p> <pre code_snippet_id="174098" snippet_file_name="blog_20140128_3_8245973" name="code" class="cpp">#include <stdio .h> #include <stdlib.h> #include <string.h> #include <fcgi_stdio.h> int main() {extern char **environ; int nlen = 0; int i; char *psz_content = NULL; char **pp_env; while(FCGI_Accept() >= 0) {printf("Content-type: text/html\n\n"); for (pp_env = environ; *pp_env; pp_env++) printf("%s<br>", *pp_env); if (strcmp("GET", getenv("REQUEST_METHOD")) == 0) {printf("<p>%s</p>", getenv( "QUERY_STRING"));} else {nlen = atoi(getenv("CONTENT_LENGTH")); psz_content = (char * )malloc( nlen + 1 ); memset( psz_content, 0, nlen + 1 ); printf("<p >char value:</p><p>"); for (i = 0; i <nlen; i++) {psz_content[i] = fgetc(stdin); printf( "%c", psz_content[i] ); } printf("</p><p>string value: %s</p>", psz_content);}} return 0;} </pre>
<p>Note:</p>
<p>1, here Use the fgetc function to read data from standard input. You cannot use gets instead.</p>
<p>2. In FCGX, the header and environment information are in FCGX_Request->envp, which cannot be obtained with genenv, but FCGX_GetParam is used. </p>
<p> In the address bar http://localhost/testenv.htm <br /> Assuming that the username and password we entered are abcd and efgh, after submitting the form, the results displayed on my machine are as follows: < br> <br /> COMSPEC=C:\WINDOWS\system32\cmd.exe <br /> CONTENT_LENGTH=31 <br /> CONTENT_TYPE=application/x-www-form-urlencoded <br /> DOCUMENT_ROOT=d:/chateaurt4/www <br > HTTP_ACCEPT=text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 <br /> HTTP_ACCEPT_CHARSET=gb2312 ,utf-8;q=0.7,*;q=0.7 <br /> HTTP_ACCEPT_ENCODING=gzip,deflate <br /> HTTP_ACCEPT_LANGUAGE=zh-cn,zh;q=0.5 <br /> HTTP_CONNECTION=keep-alive <br /> HTTP_HOST=localhost <br /> HTTP_KEEP_ALIVE=300 <br /> HTTP_REFERER=http://localhost/testenv.htm <br /> HTTP_USER_AGENT=Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3 <br /> PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;D:\MicrosoftVisual Studio\Common\Tools\WinNT;D:\Microsoft VisualStudio\Common \MSDev98\Bin;D:\Microsoft VisualStudio\Common\Tools;D:\Microsoft VisualStudio\VC98\bin;D:\AppServ\Apache2.2\bin; D:\AppServ\php5;D:\AppServ\MySQL\bin <br /> REMOTE_ADDR=127.0.0.1 <br /> REMOTE_PORT=1644 <br /> SCRIPT_FILENAME=d:/chateaurt4/www/cgi-bin/env.cgi <br > SERVER_ADDR=127.0.0.1 <br /> SERVER_ADMIN=who@where.net <br /> SERVER_NAME=localhost <br /> SERVER_PORT=80 <br /> SERVER_SIGNATURE= Apache/1.3.33 Server at localhost Port 80</address>
<p> SERVER_SOFTWARE=Apache/1.3.33 (Win32) <br /> SystemRoot=C:\WINDOWS <br /> WINDIR=C:\WINDOWS <br /> GATEWAY_INTERFACE=CGI/1.1 <br /> SERVER_PROTOCOL=HTTP/1.1 <br /> REQUEST_METHOD=POST <br /> QUERY_STRING= <br /> REQUEST_URI=/cgi-bin/env.cgi <br /> SCRIPT_NAME=/cgi-bin/env.cgi  </p>
<p>usr=abcd&pwd=efgh&submit=Submit</p>
<p > </p>
<p> Of course, different machines may output some different results. If it is purely to output environment variables, we can do this:  </p>
<pre code_snippet_id="174098" snippet_file_name="blog_20140128_4_1484577" name="code" class="cpp">#include <stdio.h>int main (int argc , char **argv, char **envp){ char **var = envp; while (*var) printf ("%s \n",*var++); return 0;}</pre>
<p> The environment obtained here The variable result is quite different from the result in the CGI program, because one obtains the environment variables related to the web application, and the other obtains the environment variables of the system. </p></p>
</div><!-- .entry-content -->					
							<div class="entry-footer">

								<div class="entry-tags">
									
									<i class="fa fa-tags" aria-hidden="true"></i> <a href="https://yf9968.com/tag/all/" rel="tag">all</a>, <a href="https://yf9968.com/tag/cgi/" rel="tag">CGI</a>, <a href="https://yf9968.com/tag/environment/" rel="tag">environment</a>, <a href="https://yf9968.com/tag/fastcgi/" rel="tag">Fastcgi</a>, <a href="https://yf9968.com/tag/get/" rel="tag">Get</a>, <a href="https://yf9968.com/tag/variables/" rel="tag">variables</a>									
								</div><!-- .entry-tags -->

							</div>

					
				
	<nav class="navigation post-navigation" role="navigation" aria-label="Posts">
		<h2 class="screen-reader-text">Post navigation</h2>
		<div class="nav-links"><div class="nav-previous"><a href="https://yf9968.com/industry/cgi/1660/" rel="prev">Does PayPal include payment integration options that do not need to display PayPal to users?</a></div><div class="nav-next"><a href="https://yf9968.com/hardware/surface/1527/" rel="next">Draw terrain data using Matplotlib Plot_surface</a></div></div>
	</nav><div id="error"><p class="wpdberror"><strong>WordPress database error:</strong> [Table 'yf99682.wp_s6mz6tyggq_comments' doesn't exist]<br /><code>SELECT SQL_CALC_FOUND_ROWS wp_s6mz6tyggq_comments.comment_ID FROM wp_s6mz6tyggq_comments  WHERE ( comment_approved = '1' ) AND comment_post_ID = 1631  ORDER BY wp_s6mz6tyggq_comments.comment_date_gmt ASC, wp_s6mz6tyggq_comments.comment_ID ASC </code></p></div>
<div id="comments" class="comments-area">

	
	<div class="comment-form-wrap">

		<div id="respond" class="comment-respond">
		<h3 id="reply-title" class="comment-reply-title"><span>Leave a Comment</span> <small><a rel="nofollow" id="cancel-comment-reply-link" href="/industry/cgi/1631/#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://yf9968.com/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate><p class="comment-notes"><span id="email-notes">Your email address will not be published.</span></p><p><textarea placeholder="Your Comment Here ..." id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p><p class="comment-form-author"><input placeholder="Name" id="author" name="author" type="text" value="" size="30" /></p>
<p class="comment-form-email"><input placeholder="Email" id="email" name="email" type="text" value="" size="30" /></p>
<p class="comment-form-url"><input placeholder="Website" id="url" name="url" type="text" value="" size="30" /></p>
<p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='1631' id='comment_post_ID' />
<input type='hidden' name='comment_parent' id='comment_parent' value='0' />
</p></form>	</div><!-- #respond -->
		</div>


</div><!-- #comments -->

	</article><!-- #post-## -->

</div>

		</main><!-- #main -->
	</div><!-- #primary -->


<aside id="secondary" class="sidebar widget-area" role="complementary">
	<div id="search-2" class="widget widget_search"><form role="search" method="get" class="search-form" action="https://yf9968.com/">
				<label>
					<span class="screen-reader-text">Search for:</span>
					<input type="search" class="search-field" placeholder="Search …" value="" name="s" />
				</label>
				<input type="submit" class="search-submit" value="Search" />
			</form></div>
		<div id="recent-posts-2" class="widget widget_recent_entries">
		<span class="gamma widget-title">Recent Posts</span>
		<ul>
											<li>
					<a href="https://yf9968.com/web/xml/5998/">Sencha-Touch-2 – Sencha Touch 2, Nested XML Analysis NodeValue</a>
									</li>
											<li>
					<a href="https://yf9968.com/web/xml/6070/">Add a separation line and format XML content</a>
									</li>
											<li>
					<a href="https://yf9968.com/web/xml/6063/">Is there a norm of simplified XML subsets?</a>
									</li>
											<li>
					<a href="https://yf9968.com/web/react/5979/">Look at it when you write React</a>
									</li>
											<li>
					<a href="https://yf9968.com/web/react/5960/">ReactJS – Present React Redux React-Router App to add the server to the Firebase hosted by the Firebase</a>
									</li>
					</ul>

		</div><div id="categories-2" class="widget widget_categories"><span class="gamma widget-title">Categories</span>
			<ul>
					<li class="cat-item cat-item-156"><a href="https://yf9968.com/category/mobile/android/" title="Android (Android) is an open source mobile device operating system based on Linux, mainly used in smartphones and tablets. The Android system was originally developed and produced by Andy Rubin and others. The initial purpose of developing this system was to create an advanced operating system for digital cameras; but later it was found that the market demand was not large enough, and the smartphone market grew rapidly. So Android was transformed into an operating system for smartphones. It was acquired by American technology company Google in August 2005. In November 2007, Google established the Open Handheld Device Alliance with 84 manufacturers, developers, and telecom operators to jointly develop and improve the Android system. Subsequently, Google released the Android version with the Apache free open source license. The original code allowed manufacturers to launch smartphones equipped with Android, and Android gradually expanded to tablet computers and other fields.">Android</a>
</li>
	<li class="cat-item cat-item-12"><a href="https://yf9968.com/category/opensource/apache/" title="he Apache HTTP Server, colloquially called Apache , is a free and open-source cross-platform web server software, released under the terms of Apache License 2.0. Apache is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation.
The vast majority of Apache HTTP Server instances run on a Linux distribution,but current versions also run on Microsoft Windows, OpenVMS,and a wide variety of Unix-like systems. Past versions also ran on NetWare, OS/2 and other operating systems,including ports to mainframes.">Apache</a>
</li>
	<li class="cat-item cat-item-28"><a href="https://yf9968.com/category/opensource/apache-kafka/" title="Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.">Apache Kafka</a>
</li>
	<li class="cat-item cat-item-148"><a href="https://yf9968.com/category/language/asp/" title="ASP stands for Active Server Pages, a server-side scripting environment developed by MicroSOft, which can be used to create dynamic interactive web pages and build powerful web applications. When the server receives a request for an ASP file, it will process the server-side script code contained in the HTML (Hyper Text Markup Language) web page file that is used to build and send to the browser. In addition to server-side script codes, ASP files can also contain text, HTML (including related client-side scripts) and com component calls. ASP is simple and easy to maintain. It is the choice of small page applications. With the use of DCOM (Distributed Component Object Model) and MTS (Microsoft Transaction Server), ASP can even implement medium-scale enterprise applications.">Asp</a>
</li>
	<li class="cat-item cat-item-110"><a href="https://yf9968.com/category/architecture/auto-test/" title="Automated testing is a process of transforming human-driven testing behaviors into machine execution. Usually, after the test case is designed and passed the review, the tester executes the test step by step according to the procedures described in the test case, and compares the actual result with the expected result. In this process, in order to save manpower, time or hardware resources and improve test efficiency, the concept of automated testing was introduced.">Auto-Test</a>
</li>
	<li class="cat-item cat-item-128"><a href="https://yf9968.com/category/develop/automated-build/" title="Continuous integration (CI) is a practice that allows the team to receive feedback and make improvements on a continuous basis, without having to wait until late in the development cycle to find and fix defects. In layman’s terms: it means that for every code submission of a developer, all codes in the Repository are automatically checked out to an empty directory, and all Test Cases are automatically run. If successful, accept this submission, otherwise tell everyone that this is a failed Revision.">Automated Build</a>
</li>
	<li class="cat-item cat-item-32"><a href="https://yf9968.com/category/cloud/aws/" title="Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon providing on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis. These cloud computing web services provide a variety of basic abstract technical infrastructure and distributed computing building blocks and tools. One of these services is Amazon Elastic Compute Cloud (EC2), which allows users to have at their disposal a virtual cluster of computers, available all the time, through the Internet. AWS's virtual computers emulate most of the attributes of a real computer, including hardware central processing units (CPUs) and graphics processing units (GPUs) for processing; local/RAM memory; hard-disk/SSD storage; a choice of operating systems; networking; and pre-loaded application software such as web servers, databases, and customer relationship management (CRM).">Aws</a>
</li>
	<li class="cat-item cat-item-139"><a href="https://yf9968.com/category/industry/bitcoin/" title="The concept of Bitcoin (BitCoin) was first proposed by Satoshi Nakamoto in 2009. It designed and released open source software based on Satoshi Nakamoto’s ideas and constructed the P2P network on it. Bitcoin is a P2P form of digital currency. Point-to-point transmission means a decentralized payment system. Unlike most currencies, Bitcoin does not rely on specific currency institutions to issue. It is generated through a large number of calculations based on specific algorithms. The Bitcoin economy uses a distributed database composed of many nodes in the entire P2P network to confirm and record all transaction behaviors. And use the design of cryptography to ensure the security of all aspects of currency circulation. The decentralized nature of P2P and the algorithm itself can ensure that the value of the currency cannot be manipulated through the large-scale production of Bitcoin. The design based on cryptography allows Bitcoin to be transferred or paid only by the real owner. This also ensures the anonymity of currency ownership and circulation transactions. The biggest difference between Bitcoin and other virtual currencies is that its total amount is very limited and it is extremely scarce. The currency system used to have no more than 10.5 million in 4 years, and the total number after that will be permanently limited to 21 million.">Bitcoin</a>
</li>
	<li class="cat-item cat-item-165"><a href="https://yf9968.com/category/opensource/browser/" title="Browser refers to a kind of software that can display the content of HTML files (an application of standard universal markup language) of a web server or file system, and allow users to interact with these files. It is used to display text, images and other information in the World Wide Web or Local Area Network. These texts or images can be hyperlinks to other websites, and users can browse various information quickly and easily. Most web pages are in HTML format. A web page can include multiple documents, and each document is obtained separately from the server. Most browsers natively support a wide range of formats other than HTML, such as image formats such as JPEG, PNG, and GIF, and can be extended to support numerous plug-ins. In addition, many browsers also support other URL types and their corresponding protocols, such as FTP, Gopher, HTTPS (encrypted version of HTTP protocol). HTTP content types and URL protocol specifications allow web designers to embed images, animations, videos, sounds, streaming media, etc. in web pages.">Browser</a>
</li>
	<li class="cat-item cat-item-149"><a href="https://yf9968.com/category/language/c/" title="C language is a general-purpose computer programming language with a wide range of applications. The design goal of C language is to provide a programming language that can compile and process low-level memory in a simple manner, generate a small amount of machine code, and can run without any operating environment support. C++ is an object-oriented programming language developed on the basis of C language, which is widely used. C++ supports multiple programming paradigms-object-oriented programming, generic programming and procedural programming.">C & C++</a>
</li>
	<li class="cat-item cat-item-150"><a href="https://yf9968.com/category/language/csharp/" title="C# is an object-oriented high-level programming language that runs on the .NET Framework released by Microsoft. C# is a safe, stable, simple, elegant, object-oriented programming language derived from C and C++. It inherits the powerful functions of C and C++ while removing some of their complex features (such as no macros and no multiple inheritance). C# combines the simple visual operation of VB and the high operating efficiency of C++. With its powerful operating capabilities, elegant syntax style, innovative language features and convenient component-oriented programming support, it has become the preferred language for .NET development.">C#</a>
</li>
	<li class="cat-item cat-item-175"><a href="https://yf9968.com/category/os/centos/" title="CentOS (Community Enterprise Operating System, Chinese meaning: Community Enterprise Operating System) is one of the Linux distributions, which is compiled from the source code released by Red Hat Enterprise Linux in accordance with the open source regulations. Since it comes from the same source code, some servers that require high stability use CentOS instead of the commercial version of Red Hat Enterprise Linux. The difference between the two is that CentOS does not include closed source software.">Centos</a>
</li>
	<li class="cat-item cat-item-140"><a href="https://yf9968.com/category/industry/cgi/" title="CGI (Common Gateway Interface) is one of the most important technologies in WWW technology and has an irreplaceable important position. CGI is an interface standard between external applications (CGI programs) and WEB servers, and is a process of transferring information between CGI programs and Web servers. The CGI specification allows Web servers to execute external programs and send their output to a Web browser. CGI turns a set of simple static hypermedia documents on the Web into a complete new interactive media. Common Gateway Interface, CGI for short. Physically, it is a piece of program that runs on the server and provides an interface with the client’s HTML page. It may not be easy to understand this way. So let’s look at a practical example: most of the current personal homepages have a guestbook. The job of the guestbook is as follows: First, the user enters some information on the client, such as comments. Then the user clicks “Publish or Submit” (the work has been done on the client so far), the browser transmits this information to the specific CGI program in the CGI directory of the server, and the CGI program is processed on the server according to a predetermined method . In this case, the information submitted by the user is stored in the specified file. Then the CGI program sends a message to the client, indicating that the requested task has ended. At this time, the user will see the words “message end” in the browser. The whole process is over.">Cgi</a>
</li>
	<li class="cat-item cat-item-176"><a href="https://yf9968.com/category/os/character/" title="Character encoding (English: Character encoding), also known as character set code, is to encode characters in a character set into an object in a specified set (for example: bit pattern, natural number sequence, 8-bit group or electric pulse) so that the text can be in the computer Storage and delivery through communication networks. Common examples include encoding the Latin alphabet into Morse code and ASCII. Among them, ASCII numbers letters, numbers and other symbols, and uses 7-bit binary to represent this integer. An extended bit is usually used to facilitate storage in 1 byte. In the early days of computer technology development, character sets such as ASCII (1963) and EBCDIC (1964) gradually became standards. But the limitations of these character sets quickly became apparent, so people developed many methods to extend them. The requirement for supporting writing systems including the East Asian CJK character family can support a larger number of characters, and a system rather than a temporary method is needed to achieve the encoding of these characters">Character</a>
</li>
	<li class="cat-item cat-item-119"><a href="https://yf9968.com/category/cloud/cloud-service/" title="Cloud services are an increase, use, and delivery model of Internet-based related services, which usually involve the provision of dynamic, easy-scalable and often virtualized resources through the Internet. Cloud is a metaphor for the network and the Internet. In the past, the cloud was often used to represent the telecommunication network in the figure, and later it was also used to represent the abstraction of the Internet and the underlying infrastructure. Cloud service refers to obtaining required services through the network in an on-demand and easy-scalable manner. This service can be related to IT and software, the Internet, or other services. It means that computing power can also be circulated through the Internet as a commodity">Cloud Service</a>
</li>
	<li class="cat-item cat-item-157"><a href="https://yf9968.com/category/mobile/cocos2dx/" title="Cocos2d-x is an open source mobile 2D game framework, released under the MIT license. This is a version of the C++ Cocos2d-iPhone project. The focus of the development of Cocos2d-X is the framework provided by Cocos2d-x around the Cocos2d cross-platform. Mobile games can be written in C++ or Lua, and the API is fully compatible with Cocos2d-iPhone. The Cocos2d-x project can be easily built and run on iOS, Android, Blackberry and other operating systems. Cocos2d-x also supports desktop operating systems such as Windows, Mac and Linux. Therefore, the source code written by developers can be easily edited and debugged in the desktop operating system.">Cocos2dx</a>
</li>
	<li class="cat-item cat-item-158"><a href="https://yf9968.com/category/mobile/cordova/" title="Cordova provides a set of device-related APIs. Through this set of APIs, mobile applications can use JavaScript to access native device functions, such as cameras and microphones. Cordova also provides a unified set of JavaScript class libraries, as well as the native background code related to the devices used by these libraries. Cordova is an open source project contributed to Apache. It is the core code extracted from PhoneGap and is the core engine that drives PhoneGap. You can think of their relationship as similar to the relationship between Webkit and Google Chrome">Cordova</a>
</li>
	<li class="cat-item cat-item-186"><a href="https://yf9968.com/category/web/css/" title="Cascading Style Sheets (Cascading Style Sheets) is a computer language used to express HTML (an application of Standard Universal Markup Language) or XML (a subset of Standard Universal Markup Language). The latest version of CSS is CSS3, which is a style design language that can truly separate web page performance and content. Compared with the performance of traditional HTML, CSS can accurately control the position and layout of objects in web pages, supports almost all font size styles, has the ability to edit web page objects and model styles, and can perform preliminary interactions. Design is currently the best expressive design language based on text display.">CSS</a>
</li>
	<li class="cat-item cat-item-177"><a href="https://yf9968.com/category/os/data-structure/" title="Data structure is the way a computer stores and organizes data. Data structure refers to a collection of data elements that have one or more specific relationships with each other. Under normal circumstances, a carefully selected data structure can bring higher operating or storage efficiency. Data structure is often related to efficient retrieval algorithms and indexing techniques.">Data Structure</a>
</li>
	<li class="cat-item cat-item-151"><a href="https://yf9968.com/category/language/delphi/" title="Delphi is a well-known rapid application development tool (Rapid Application Development, RAD) under the Windows platform. Its predecessor was the “Borland Turbo Pascal” that was popular in the DOS era. The earliest version was developed by the American Borland company in 1995. The main creator is Anders Hejlsberg. After several years of development, this product has also been transferred to the Embarcadero company. Delphi is an integrated development environment (IDE). The core used is Object Pascal developed from the traditional Pascal language. It uses a graphical user interface as the development environment, and uses IDE, VCL tools and compilers to cooperate with the function of connecting to the database. An application development tool centered on object-oriented programming.">Delphi</a>
</li>
	<li class="cat-item cat-item-111"><a href="https://yf9968.com/category/architecture/design-pattern/" title="Design pattern (Design pattern) is a set of code design experience that has been used repeatedly and is known to most people. The use of design patterns is to reusable code, make it easier for others to understand, and ensure code reliability. There is no doubt that design patterns are win-win for others and systems; design patterns make code preparation truly engineering; design patterns are the cornerstone of software engineering, just like the structure of a building.">Design Pattern</a>
</li>
	<li class="cat-item cat-item-187"><a href="https://yf9968.com/category/web/dojo/" title="Dojo is an open source DHTML toolkit implemented in javascript language. It was established on the basis of several project donations (nWidgets, Burstlib, f(m)), which is why it is called a “unified” toolkit. Dojo’s goal is to solve the long-standing, historical problems with DHTML (historical problems with DHTML) encountered in the development of DHTML applications. Cross-browser issues.">Dojo</a>
</li>
	<li class="cat-item cat-item-166"><a href="https://yf9968.com/category/opensource/dubbo/" title="Dubbo is a high-performance and excellent service framework open sourced by China’s Alibaba Company, which enables applications to realize service output and input functions through high-performance RPC, and can be seamlessly integrated with the Spring framework.">Dubbo</a>
</li>
	<li class="cat-item cat-item-43"><a href="https://yf9968.com/category/opensource/elk/" title="Elasticsearch is a search engine based on the Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents. Elasticsearch is developed in Java and is dual-licensed under the source-available Server Side Public License and the Elastic license,while other parts fall under the proprietary (source-available) Elastic License. Official clients are available in Java, .NET (C#), PHP, Python, Apache Groovy, Ruby and many other languages.According to the DB-Engines ranking, Elasticsearch is the most popular enterprise search engine.">ELK</a>
</li>
	<li class="cat-item cat-item-188"><a href="https://yf9968.com/category/web/flex/" title="Flex is an efficient, free and open source framework that can be used to build expressive Web applications. These applications use Adobe Flash Player and Adobe AIR to achieve cross-browser, desktop and operating system. Although only the Flex framework can be used to build Flex applications, Adobe Flash Builder™ (previously known as Adobe Flex Builder™) software can speed development through features such as smart coding, interactive traversal debugging, and visual design of user interface layouts.

">Flex</a>
</li>
	<li class="cat-item cat-item-62"><a href="https://yf9968.com/category/other/football/" title="Football is a family of team sports that involve, to varying degrees, kicking a ball to score a goal. Unqualified, the word football normally means the form of football that is the most popular where the word is used.">football</a>
</li>
	<li class="cat-item cat-item-141"><a href="https://yf9968.com/category/industry/game/" title="Google Inc. was founded on September 4, 1998, co-founded by Larry Page and Sergey Brin, and is recognized as the world’s largest search engine. Google is a multinational technology company based in the United States. Its business includes Internet search, cloud computing, and advertising technology. It also develops and provides a large number of Internet-based products and services. Its main profit comes from advertising services such as AdWords.">Game</a>
</li>
	<li class="cat-item cat-item-167"><a href="https://yf9968.com/category/opensource/hadoop/" title="Hadoop is a distributed system infrastructure developed by the Apache Foundation. Users can develop distributed programs without understanding the underlying details of distributed. Make full use of the power of clusters for high-speed computing and storage. Hadoop implements a distributed file system (Hadoop Distributed File System), referred to as HDFS. HDFS has the characteristics of high fault tolerance and is designed to be deployed on low-cost hardware; and it provides high throughput (high throughput) to access application data, suitable for those with large data sets (large data sets). set) application. HDFS relaxes the requirements of POSIX and can access data in the file system in the form of streaming access. The core design of the Hadoop framework is: HDFS and MapReduce. HDFS provides storage for massive amounts of data, while MapReduce provides calculations for massive amounts of data.">Hadoop</a>
</li>
	<li class="cat-item cat-item-168"><a href="https://yf9968.com/category/opensource/hibernate/" title="Hibernate is an open source object-relational mapping framework. It encapsulates JDBC very lightweight objects. It establishes a mapping relationship between POJOs and database tables. It is a fully automatic orm framework. Hibernate can automatically generate SQL statements. Automatic execution allows Java programmers to use object programming thinking to manipulate the database as they like. Hibernate can be used in any occasion where JDBC is used, either in Java client programs or in Servlet/JSP Web applications. The most revolutionary thing is that Hibernate can replace CMP in the J2EE architecture using EJB. , To complete the important task of data persistence.">Hibernate</a>
</li>
	<li class="cat-item cat-item-189"><a href="https://yf9968.com/category/web/html/" title="HyperText Markup Language (HyperText Markup Language) uses markup symbols to mark each part of the web page to be displayed. The web page file itself is a text file. By adding tags to the text file, you can tell the browser how to display the content (such as: how to process the text, how to arrange the screen, how to display the picture, etc.). The browser reads the web page files in order, and then interprets and displays the marked content according to the tags.">HTML</a>
</li>
	<li class="cat-item cat-item-159"><a href="https://yf9968.com/category/mobile/hybrid/" title="Hybrid App (hybrid mobile application) refers to an app that lies between web-app and native-app. It has both “the advantage of a good user interaction experience for Native App” and “the advantage of Web App cross-platform development”. Although it looks like a Native App, it has only one UI WebView, which accesses a Web App. For example, the first application of Jiebian.com is a shell of a client. In fact, it is a HTML5 web page. Native application.">Hybrid</a>
</li>
	<li class="cat-item cat-item-129"><a href="https://yf9968.com/category/hardware/intel/" title="Intel Corporation is an American company that mainly develops CPU processors and is the world’s largest manufacturer of personal computer parts and CPUs. It was established in 1968 and has a history of 48 years of product innovation and market leadership. In 1971, Intel introduced the world’s first microprocessor. The computer and Internet revolutions brought about by microprocessors changed the entire world.">Intel</a>
</li>
	<li class="cat-item cat-item-160"><a href="https://yf9968.com/category/mobile/ios/" title="iOS is a mobile operating system developed by Apple. Apple first announced this system at the Macworld conference on January 9, 2007. It was originally designed for the iPhone and later applied to iPod touch, iPad, Apple TV and other products. Like Apple’s Mac OS X operating system, iOS is a Unix-like commercial operating system.">IOS</a>
</li>
	<li class="cat-item cat-item-130"><a href="https://yf9968.com/category/hardware/ipad/" title="iPad is a tablet computer series released by Apple in 2010. It is positioned between Apple’s smartphone iPhone and laptop products. It has the same layout as the iPhone. It provides website browsing, Send and receive emails, watch e-books, play audio or video, play games and other functions. Designed by a team led by British-born design supervisor Jonathan Ive (some translated as Jonathan Ive), this sleek, ultra-thin product reflects Ive’s respect for the talented German designer Dieter Rams Feelings.">Ipad</a>
</li>
	<li class="cat-item cat-item-131"><a href="https://yf9968.com/category/hardware/iphone/" title="iPhone is a smart phone developed by Apple in the United States. It is equipped with the iOS operating system. The first iPhone was released on January 9, 2007 by the former CEO of Apple, Steve Jobs, and officially went on sale on June 29, 2007.">iPhone</a>
</li>
	<li class="cat-item cat-item-25"><a href="https://yf9968.com/category/language/java/" title="Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let application developers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation.Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture.">Java</a>
</li>
	<li class="cat-item cat-item-21"><a href="https://yf9968.com/category/language/js/" title="JavaScript , often abbreviated as JS, is a programming language that conforms to the ECMAScript specification.JavaScript is high-level, often just-in-time compiled, and multi-paradigm. It has curly-bracket syntax, dynamic typing, prototype-based object-orientation, and first-class functions.

Alongside HTML and CSS, JavaScript is one of the core technologies of the World Wide Web.Over 97% of websites use it client-side for web page behavior,often incorporating third-party libraries.All major web browsers have a dedicated JavaScript engine to execute the code on the user's device.">Javascript</a>
</li>
	<li class="cat-item cat-item-169"><a href="https://yf9968.com/category/opensource/jetty/" title="Jetty is an open source servlet container, which provides a runtime environment for Java-based web containers such as JSP and servlet. Jetty is written in Java language, and its API is released in the form of a set of JAR packages. Developers can instantiate the Jetty container into an object, which can quickly provide network and web connections for stand-alone Java applications.">Jetty</a>
</li>
	<li class="cat-item cat-item-190"><a href="https://yf9968.com/category/web/jquery/" title="JQuery is another excellent Javascript library after prototype. It is a lightweight js library, it is compatible with CSS3, and also compatible with various browsers (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+), jQuery2.0 and subsequent versions will no longer support IE6/7 /8 browser. jQuery makes it more convenient for users to process HTML (an application under the standard universal markup language), events, realize animation effects, and easily provide AJAX interaction for websites. Another big advantage of jQuery is that its documentation is very complete, various applications are also explained in detail, and there are many mature plug-ins to choose from.">JQuery</a>
</li>
	<li class="cat-item cat-item-6"><a href="https://yf9968.com/category/web/jsp/" title="Jakarta Server Pages (JSP; formerly JavaServer Pages) is a collection of technologies that helps software developers create dynamically generated web pages based on HTML, XML, SOAP, or other document types. Released in 1999 by Sun Microsystems,JSP is similar to PHP and ASP, but uses the Java programming language.">Jsp</a>
</li>
	<li class="cat-item cat-item-178"><a href="https://yf9968.com/category/os/linux/" title="Linux is a free-to-use and freely disseminated Unix-like operating system. It is a multi-user, multi-tasking, multi-threaded and multi-CPU operating system based on POSIX and UNIX. It can run major UNIX tools, applications, and network protocols. It supports 32-bit and 64-bit hardware. Linux inherits Unix’s network-centric design philosophy and is a multi-user network operating system with stable performance.">Linux</a>
</li>
	<li class="cat-item cat-item-112"><a href="https://yf9968.com/category/architecture/load-balance/" title="Load Balance is based on the existing network structure, and allocates requests to multiple operating units for execution, such as Web servers, FTP servers, enterprise key application servers, and other mission-critical servers, so as to complete work tasks together . It provides a cheap, effective and transparent way to expand the bandwidth of network devices and servers, increase throughput, strengthen network data processing capabilities, and improve network flexibility and availability.">Load Balance</a>
</li>
	<li class="cat-item cat-item-152"><a href="https://yf9968.com/category/language/lua/" title="Lua is a small scripting language. It is a research group in the Pontifical Catholic University of Rio de Janeiro, Brazil, composed of Roberto Ierusalimschy, Waldemar Celes and Luiz Henrique de Figueiredo and developed in 1993. Its design purpose is to be embedded in the application, so as to provide flexible expansion and customization functions for the application. Lua is written in standard C and can be compiled and run on almost all operating systems and platforms. Lua does not provide a powerful library, which is determined by its positioning. Therefore, Lua is not suitable as a language for developing independent applications. Lua has a simultaneous JIT project that provides just-in-time compilation on a specific platform.">Lua</a>
</li>
	<li class="cat-item cat-item-132"><a href="https://yf9968.com/category/hardware/macbook/" title="MacBook is a notebook Macintosh (Macintosh) developed by Apple Computer. It is the successor of the iBook G4 series and was launched in online stores and various stores on May 16, 2006. It also successfully replaced the iBook G4 series and the last PowerBook product, the 12-inch PowerBook G4.">Macbook</a>
</li>
	<li class="cat-item cat-item-179"><a href="https://yf9968.com/category/os/macos/" title="Mac OS is a set of operating systems running on Apple’s Macintosh series of computers. Mac OS is the first successful graphical user interface operating system in the commercial field. The Mac system is a graphical operating system based on the Unix kernel; in general, an operating system that cannot be installed on an ordinary PC. Developed by Apple.">Macos</a>
</li>
	<li class="cat-item cat-item-180"><a href="https://yf9968.com/category/os/mathematics/" title="Applied Mathematics is a general term for mathematical theories and methods with a clear application purpose. The study of how to apply mathematical knowledge to the branches of mathematics in other categories (especially science) can be said to be the opposite of pure mathematics. Including differential equations, vector analysis, matrix, Fourier transform, complex analysis, numerical methods, probability theory, mathematical statistics, operations research, control theory, combinatorial mathematics, information theory and many other branches of mathematics, as well as from various application fields The study of the mathematical problem presented. Computational mathematics can sometimes be regarded as part of applied mathematics.">Mathematics</a>
</li>
	<li class="cat-item cat-item-113"><a href="https://yf9968.com/category/architecture/micro-services/" title="The microservice architecture style is like developing a small service into a single application. Each application runs in a single process and uses a lightweight API such as HTTP. These services meet a certain requirement and are independently released using automated deployment tools. These services can use different development languages and different data storage technologies, and maintain centralized management with minimal restrictions.">Micro Services</a>
</li>
	<li class="cat-item cat-item-114"><a href="https://yf9968.com/category/architecture/monitoring/" title="Application monitoring refers to real-time monitoring, analysis, and alarming of application performance, traffic, bandwidth occupancy, popularity, user behavior, user source channels, and user client environment from the application layer. Application monitoring has the advantages of small impact on the original system and simple implementation.">Monitoring</a>
</li>
	<li class="cat-item cat-item-133"><a href="https://yf9968.com/category/hardware/motherboard/" title="Computer case motherboards are also called mainboards, systemboards or motherboards; they are divided into commercial motherboards and industrial motherboards. It is installed in the chassis and is one of the most basic and important components of a microcomputer. The motherboard is generally a rectangular circuit board, on which is installed the main circuit system that composes the computer, generally there are BIOS chips, I/O control chips, key and panel control switch interfaces, indicator plugs, expansion slots, motherboards and plug-in cards. DC power supply connectors and other components.">Motherboard</a>
</li>
	<li class="cat-item cat-item-120"><a href="https://yf9968.com/category/database/mysql/" title="MySQL is a relational database management system, developed by the Swedish company MySQL AB, and currently belongs to an Oracle company. MySQL is the most popular relational database management system. In terms of web applications, MySQL is one of the best RDBMS (Relational Database Management System) application software.">Mysql</a>
</li>
	<li class="cat-item cat-item-134"><a href="https://yf9968.com/category/hardware/network-card/" title="Network hardware generally refers to extreme machine equipment, transmission media, and network connection equipment. As of 2011, there are many network connection devices with different functions and complexity. Network hardware generally refers to extreme machine equipment, transmission media, and network connection equipment. There are many network connection devices with different functions and complicated. Computers in the network have different functions based on their different functions and can be divided into servers and workstations. The main function of the server is to control and coordinate the operation of the network workstations through the network operating system, process and respond to various network operation requirements sent by each workstation at the same time, and provide network services. The workstation is the workplace of each user on the network, usually a microcomputer or terminal. The workstation is connected to the network server through the transmission medium through the network interface board (network card) inserted in it.">Network Hardware</a>
</li>
	<li class="cat-item cat-item-143"><a href="https://yf9968.com/category/industry/network-marketing/" title="Internet marketing is a business activity based on modern marketing theories and using network, communication and digital media technologies to achieve marketing goals. It is a result of comprehensive factors such as technological progress, customer value changes, and market competition; it is an inevitable product of an information society. Network marketing can be divided into broad sense and narrow sense according to its realization method. Broad sense network marketing refers to enterprises using all computer networks for marketing activities, while narrow sense network marketing refers specifically to international Internet marketing.">Network Marketing</a>
</li>
	<li class="cat-item cat-item-170"><a href="https://yf9968.com/category/opensource/nginx/" title="Nginx (“engine x”) is a high-performance HTTP and reverse proxy server, as well as an IMAP/POP3/SMTP server. Nginx was developed by Igor Sysoev for the second most visited site in Russia, Rambler.ru. The first public version 0.1.0 was released on October 4, 2004. It releases the source code in the form of a BSD-like license, which is known for its stability, rich feature set, sample configuration files and low system resource consumption. On June 1, 2011, nginx 1.0.4 was released. Nginx is a lightweight web server/reverse proxy server and email (IMAP/POP3) proxy server, and is issued under a BSD-like protocol. Developed by Russian programmer Igor Sysoev, it is used by the Russian large-scale portal and search engine Rambler (Russian: Рамблер). Its characteristic is that it occupies less memory and has strong concurrency.">Nginx</a>
</li>
	<li class="cat-item cat-item-191"><a href="https://yf9968.com/category/web/nodejs/" title="Node.js is a platform based on the Chrome JavaScript runtime, which is used to conveniently build web applications with fast response speed and easy expansion. Node.js uses event-driven, non-blocking I/O model to be lightweight and efficient. It is very suitable for data-intensive real-time applications running on distributed devices.">NodeJs</a>
</li>
	<li class="cat-item cat-item-121"><a href="https://yf9968.com/category/database/nosql/" title="NoSQL, generally refers to non-relational databases. With the rise of Internet web2.0 websites, traditional relational databases have been unable to cope with web2.0 websites, especially the super-large-scale and high-concurrency SNS-type web2.0 pure dynamic websites, which have exposed many insurmountable problems. The non-relational database has been developed very rapidly due to its own characteristics. NoSQL database was created to solve the challenges brought by multiple data types in large-scale data collections, especially big data application problems.">Nosql</a>
</li>
	<li class="cat-item cat-item-122"><a href="https://yf9968.com/category/database/oracle/" title="Oracle Database, also known as Oracle RDBMS, or Oracle for short. It is a relational database management system of Oracle. It is a product that has always been in a leading position in the database field. It can be said that the Oracle database system is a popular relational database management system in the world. The system has good portability, easy use, and strong functions, and is suitable for all kinds of large, medium, small and microcomputer environments. It is a high-efficiency, reliable and high-throughput database solution.">Oracle</a>
</li>
	<li class="cat-item cat-item-181"><a href="https://yf9968.com/category/os/ostheory/" title="The main functions of the operating system are resource management, program control and human-computer interaction. The resources of a computer system can be divided into two categories: equipment resources and information resources. Device resources refer to the hardware devices that make up the computer, such as the central processing unit, main memory, disk storage, printers, tape storage, monitors, keyboard input devices, and mice. Information resources refer to various data stored in the computer, such as files, program libraries, knowledge bases, system software and application software, etc.">Os Theory</a>
</li>
	<li class="cat-item cat-item-115"><a href="https://yf9968.com/category/architecture/performance/" title="Whether you are a system designer, developer or tester, to build a high-performance system, you need to understand the following concepts: 1. Response time is the time for the system to respond to user requests, and response time is the user’s most intuitive experience of system performance. Therefore, the performance of the system is directly expressed. 2. Concurrent users, within a certain time frame, the largest number of simultaneous online users, that is, the number of peak online users 3. System throughput refers to the number of requests processed by the system within a unit time 4. Think Time, From a business perspective, this time refers to the time interval between each request when the user performs an operation. In order to simulate this time interval during performance testing, the concept of thinking time is introduced to more realistically simulate the user’s operate. In the formula of throughput, F=VU * R / T shows that throughput F is a function of the number of VUs, the number of requests issued by each user R, and time T, and R can be calculated by time T and user thinking time TS Calculation: R = T / TS">Performance</a>
</li>
	<li class="cat-item cat-item-30"><a href="https://yf9968.com/category/language/php/" title="PHP is a general-purpose scripting language geared towards web development.It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1994.The PHP reference implementation is now produced by The PHP Group.PHP originally stood for Personal Home Page,but it now stands for the recursive initialism PHP: Hypertext Preprocessor.">PHP</a>
</li>
	<li class="cat-item cat-item-123"><a href="https://yf9968.com/category/database/postgresql/" title="PostgresQL is an object-relational database management system (ORDBMS) based on version 4.2 of POSTGRES developed by the Department of Computer Science at the University of California, Berkeley. It has now been renamed to PostgreSQL. PostgreSQL supports most SQL standards and provides many other modern features: complex queries, foreign keys, triggers, views, transaction integrity, MVCC. Similarly, PostgreSQL can be extended in many ways, for example, by adding new data types, functions, operators, aggregate functions, and indexes. Use, modify, and distribute PostgreSQL for free, whether it is for private, commercial, or academic research.">Postgresql</a>
</li>
	<li class="cat-item cat-item-124"><a href="https://yf9968.com/category/database/power-designer/" title="PowerDesigner was originally developed by Xiao-Yun Wang in SDP Technologies. PowerDesigner is Sybase’s enterprise modeling and design solution. It uses a model-driven approach to combine business and IT. It can help deploy an effective enterprise architecture and provide powerful analysis and design techniques for R&D lifecycle management. PowerDesigner uniquely integrates a variety of standard data modeling technologies (UML, business process modeling, and market-leading data modeling), and integrates with mainstream development platforms such as .NET, WorkSpace, PowerBuilder, Java™, and Eclipse, thereby Provide business analysis and standardized database design solutions for traditional software development cycle management. In addition, it supports more than 60 relational database management systems (RDBMS)/versions. PowerDesigner runs on the Microsoft Windows platform and provides an Eclipse plug-in.">Power Designer</a>
</li>
	<li class="cat-item cat-item-192"><a href="https://yf9968.com/category/web/react/" title="React originated from Facebook’s internal project. Because the company was not satisfied with all the JavaScript MVC frameworks on the market, it decided to write a set of its own to build an Instagram website. After making it, I found that this set of things is very useful, and it was open sourced in May 2013. The project itself is getting bigger and bigger, changing from the earliest UI engine to a set of Web App solutions that take all front and back ends. The derivative React Native project, the goal is even more ambitious, I hope to write Native App in the way of writing Web App. If it can be achieved, the entire Internet industry will be subverted, because the same group of people only need to write the UI once, and it can run on the server, browser and mobile phone at the same time.">React</a>
</li>
	<li class="cat-item cat-item-47"><a href="https://yf9968.com/category/opensource/redis/" title="Redis is an in-memory data structure store, used as a distributed, in-memory key–value database, cache and message broker, with optional durability. Redis supports different kinds of abstract data structures, such as strings, lists, maps, sets, sorted sets, HyperLogLogs, bitmaps, streams, and spatial indices. The project was developed and maintained by Salvatore Sanfilippo.From 2015 until 2020, he led a project core team sponsored by Redis Labs.Salvatore Sanfilllippo left Redis as the maintainer in 2020.">Redis</a>
</li>
	<li class="cat-item cat-item-182"><a href="https://yf9968.com/category/os/regexp/" title="Regular expressions, also known as regular expressions. (English: Regular Expression, often abbreviated as regex, regexp or RE in the code), a concept of computer science. Regular tables are usually used to retrieve and replace texts that conform to a certain pattern (rule). Many programming languages support string manipulation using regular expressions. For example, a powerful regular expression engine is built in Perl, and the Java language comes with it. The concept of regular expressions was first popularized by tools in Unix (such as sed and grep). Regular expressions are usually abbreviated as “regex”. The singular includes regexp and regex, and the plural includes regexps, regexes, and regexen.">Regexp</a>
</li>
	<li class="cat-item cat-item-161"><a href="https://yf9968.com/category/mobile/rom/" title="ROM is the abbreviation of ROM image (read-only memory image), which is often used in the circle of mobile phone customization system players. Generally, the process of flashing a mobile phone is the process of writing a read-only memory image (ROM image) into the read-only memory (ROM). Common ROM images have formats such as img, zip, etc. The former is usually flashed in through the data line with the fastboot program (wire flashing), and the latter is usually flashed in from SD (card flashing) in recovery mode, so img mirroring is also called line flashing. Package, zip image is also called card swipe package. Domestic custom system developers often fall into the debate about whether their products should be called OS or UI. In order to avoid such disputes and express humility, they will call themselves ROM. Many custom system players will also refer to the custom system as ROM.">Rom</a>
</li>
	<li class="cat-item cat-item-144"><a href="https://yf9968.com/category/industry/rss/" title="Simple information aggregation (also called aggregated content) is a content packaging and delivery protocol that is widely used on the Internet based on the XML standard. RSS (Really Simple Syndication) is a format for describing and synchronizing website content, and is the most widely used XML application. RSS has built a technology platform for the rapid dissemination of information, making everyone a potential information provider. After publishing an RSS file, the information contained in the RSS Feed can be directly called by other sites, and because these data are in standard XML format, they can also be used in other terminals and services, which is a description and synchronization The format of the website content. [1] RSS can be one of the following three interpretations: Really Simple Syndication; RDF (Resource Description Framework) Site Summary; Rich Site Summary. But in fact, these three explanations all refer to the same kind of Syndication technology">Rss</a>
</li>
	<li class="cat-item cat-item-153"><a href="https://yf9968.com/category/language/ruby/" title="Ruby, a scripting language created for simple and fast object-oriented programming (object-oriented programming), was developed by Japanese Yukihiro Matsumoto in the 1990s and complies with the GPL agreement and Ruby License. Its inspiration and features come from Perl, Smalltalk, Eiffel, Ada, and Lisp languages. The Ruby language itself has also developed Ruby language alternatives to other platforms such as JRuby (Java platform) and IronRuby (.NET platform). The author of Ruby started writing Ruby on February 24, 1993, and it was not officially released to the fj (news group) until December 1995. Because Perl is pronounced the same as the June birthstone pearl, Ruby is named after the July birthstone ruby.">Ruby</a>
</li>
	<li class="cat-item cat-item-116"><a href="https://yf9968.com/category/architecture/search-engines/" title="Search Engine refers to a system that collects information from the Internet according to certain strategies and uses specific computer programs. After organizing and processing the information, it provides users with search services and displays relevant information related to user retrieval to users. . Search engines include full-text index, catalog index, meta search engine, vertical search engine, collective search engine, portal search engine and free link list, etc.">Search Engines</a>
</li>
	<li class="cat-item cat-item-37"><a href="https://yf9968.com/category/language/shell/" title="A shell script is a computer program designed to be run by the Unix shell, a command-line interpreter.The various dialects of shell scripts are considered to be scripting languages. Typical operations performed by shell scripts include file manipulation, program execution, and printing text. A script which sets up the environment, runs the program, and does any necessary cleanup, logging, etc. is called a wrapper.">Shell Script</a>
</li>
	<li class="cat-item cat-item-145"><a href="https://yf9968.com/category/industry/silicon-valley/" title="Silicon Valley, located in northern California and southern San Francisco Bay Area, is another name for the Santa Clara Valley, California, where high-tech businesses gather. The main part of Silicon Valley is located in Santa Clara County (Santa Clara County) at the southern end of the San Francisco Peninsula. It is mainly a 25-mile-long valley from Palo Alto, the county’s capital, to San Jose, the county’s capital; and the total range generally includes Some cities in San Mateo County in the southwestern San Francisco Bay Area (such as Menlo Park) and some cities in Alameda County in the East San Francisco Bay Area (such as Fremont). It was the first place to research and produce silicon-based semiconductor chips, hence the name.">Silicon Valley</a>
</li>
	<li class="cat-item cat-item-162"><a href="https://yf9968.com/category/mobile/silverlight/" title="Microsoft Silverlight is a cross-browser, cross-platform plug-in that brings the next generation of media experience and rich interactive applications based on .NET Framework to the network. Silverlight provides a flexible programming model and can be easily integrated into existing network applications. Silverlight can provide fast and low-cost delivery of high-quality video information to mainstream browsers running on Mac or Windows.">Silverlight</a>
</li>
	<li class="cat-item cat-item-117"><a href="https://yf9968.com/category/architecture/software-design/" title="Software design is based on the software requirements specification, designing the overall structure of the software system, dividing functional modules, determining the implementation algorithm of each module, and writing specific codes according to the functions determined in the requirements analysis stage to form a specific software design plan. Software design abstracts many things and problems, and abstracts them at different levels and angles. Decomposing a problem or thing and modularizing it makes it easy to solve the problem. The finer the decomposition, the greater the number of modules. Its side effect is to make the designer consider more coupling between modules">Software Design</a>
</li>
	<li class="cat-item cat-item-171"><a href="https://yf9968.com/category/opensource/spring/" title="Spring is an open source framework. Spring is a lightweight Java development framework that emerged in 2003 and was created by Rod Johnson. Simply put, Spring is a layered JavaSE/EEfull-stack (one-stop) lightweight open source framework">Spring</a>
</li>
	<li class="cat-item cat-item-125"><a href="https://yf9968.com/category/database/sql/" title="Structured Query Language (Structured Query Language) is abbreviated as SQL, a special purpose programming language, a database query and programming language, used to access data and query, update and manage relational database systems">Sql</a>
</li>
	<li class="cat-item cat-item-126"><a href="https://yf9968.com/category/database/sqlite/" title="SQLite, a lightweight database, is a relational database management system that complies with ACID. It is contained in a relatively small C library. It is a public domain project established by D. Richard Hipp. Its design goal is embedded, and it has been used in many embedded products. It occupies very low resources. In embedded devices, only a few hundred K of memory may be enough. It can support mainstream operating systems such as Windows/Linux/Unix, and can be combined with many programming languages, such as Tcl, C#, PHP, Java, etc., as well as ODBC interfaces. It is also compared with the two open source Mysql and PostgreSQL In terms of world-famous database management systems, its processing speed is faster than them.">Sqlite</a>
</li>
	<li class="cat-item cat-item-127"><a href="https://yf9968.com/category/database/sqlserver/" title="SQL Server is a relational database management system (DBMS) developed and promoted by Microsoft. It was originally jointly developed by Microsoft, Sybase and Ashton-Tate, and the first OS/2 version was launched in 1988. Microsoft SQL Server has been continuously updated in recent years. In 1996, Microsoft launched SQL Server 6.5; in 1998, SQL Server 7.0 version met with users; SQL Server 2000 was launched by Microsoft in 2000, and the latest version is March 2012 Launched SQL SERVER 2012.">Sqlserver</a>
</li>
	<li class="cat-item cat-item-135"><a href="https://yf9968.com/category/hardware/storage/" title="Data storage is the temporary files generated by the data stream during the processing or the information that needs to be searched during the processing. The data is recorded on the internal or external storage medium of the computer in a certain format. Data storage should be named, and this naming should reflect the meaning of the composition of the information characteristics. Data flow reflects the data flowing in the system, showing the characteristics of dynamic data; data storage reflects the static data in the system, showing the characteristics of static data.">Storage</a>
</li>
	<li class="cat-item cat-item-172"><a href="https://yf9968.com/category/opensource/storm/" title="Storm provides a set of common primitives for distributed real-time computing, which can be used in “stream processing” to process messages and update databases in real time. This is another way to manage queues and worker clusters. Storm can also be used for “continuous computation” (continuous computation), to perform continuous queries on data streams, and output the results to users in the form of streams during calculation. It can also be used for “distributed RPC” to run expensive operations in parallel. Storm can easily write and expand complex real-time calculations in a computer cluster. Storm is used for real-time processing, just like Hadoop is used for batch processing. Storm guarantees that every message will be processed, and it is fast-in a small cluster, it can process millions of messages per second. What’s even better is that you can use any programming language for development.">Storm</a>
</li>
	<li class="cat-item cat-item-136"><a href="https://yf9968.com/category/hardware/surface/" title="Surface is a brand new hardware brand launched by Microsoft in the United States. Microsoft released the Surface series of tablets on June 19, 2012. This tablet computer uses a magnesium alloy body with a 10.6-inch display, is equipped with a USB 2.0 or 3.0 interface, and uses the Windows 8 operating system. Microsoft’s official website calls it a “full HD display” with a 16:9 screen ratio. This product is divided into two versions: one uses Windows 8 specifically designed for ARM version Windows RT; the other uses Intel Core i5 Ivy Bridge processor, using Windows 8 Pro.">Surface</a>
</li>
	<li class="cat-item cat-item-173"><a href="https://yf9968.com/category/opensource/svn/" title="SVN, short for Subversion, is an open source version control system. Compared with RCS and CVS, it uses a branch management system. Its design goal is to replace CVS. Many version control services on the Internet have migrated from CVS to Subversion. To put it simply, SVN is used for the purpose of multiple people jointly developing the same project and sharing resources.">SVN</a>
</li>
	<li class="cat-item cat-item-163"><a href="https://yf9968.com/category/mobile/swift/" title="Swift, a new development language released by Apple at WWDC (Apple Developer Conference) in 2014, can run on Mac OS and iOS platforms together with Objective-C* to build applications based on the Apple platform. Swift is an easy-to-learn and easy-to-use programming language, and it is also the first system programming language with the same expressiveness and fun as a scripting language. Swift is designed with safety as the starting point to avoid various common programming error categories.">Swift</a>
</li>
	<li class="cat-item cat-item-118"><a href="https://yf9968.com/category/architecture/system-architecture/" title="The system architecture is the technical realization architecture of the determined requirements, making a good plan, using a complete set of tools, and completing tasks in the planning steps.">System Architecture</a>
</li>
	<li class="cat-item cat-item-137"><a href="https://yf9968.com/category/hardware/tablet/" title="Tablet refers to a tablet computer (English: Tablet Personal Computer, Tablet PC, Flat Pc, Tablet, Slates for short), which is a small, portable personal computer with a touch screen as the basic input device. It has a touch screen (also known as tablet technology) that allows users to perform tasks with a stylus or digital pen instead of a traditional keyboard or mouse. Users can use the built-in handwriting recognition, on-screen soft keyboard, voice recognition or a real keyboard (if the model is equipped). Tablet PCs were proposed by Bill Gates and should support chip architectures from Qualcomm Snapdragon processors, Intel, AMD and ARM. Tablet PCs are divided into ARM architecture (representative products are iPad and Android tablets) and X86 architecture (representative products are (Surface Pro and Wbin Magic) The latter X86 architecture tablet computer generally uses intel processor and Windows operating system, has complete computer and tablet functions, and supports exe programs.">Tablet</a>
</li>
	<li class="cat-item cat-item-1"><a href="https://yf9968.com/category/uncategorized/">Uncategorized</a>
</li>
	<li class="cat-item cat-item-183"><a href="https://yf9968.com/category/os/unix/" title="The UNIX operating system (Eunice) is a powerful multi-user, multi-tasking operating system that supports multiple processor architectures. According to the classification of the operating system, it is a time-sharing operating system. It was first developed by KenThompson, Dennis Ritchie and Douglas McIlroy in 1969 Developed in AT&T’s Bell Labs in the year. At present, its trademark rights are owned by the International Open Standards Organization, and only UNIX systems that conform to a single UNIX specification can use the name UNIX, otherwise it can only be called UNIX-like (UNIX-like)">Unix</a>
</li>
	<li class="cat-item cat-item-154"><a href="https://yf9968.com/category/language/vb/" title="Visual Basic is a structured, modular, object-oriented, visual programming language developed by Microsoft Corporation that includes an event-driven mechanism that assists in the development environment. This is a language that can be used in the development of Microsoft’s own products. It is derived from the BASIC programming language. VB has a graphical user interface (GUI) and rapid application development (RAD) system, you can easily use DAO, RDO, ADO to connect to the database, or easily create Active X controls. Programmers can easily use the components provided by VB to quickly build an application.

">Visual Basic</a>
</li>
	<li class="cat-item cat-item-146"><a href="https://yf9968.com/category/industry/visual-studio/" title="Microsoft Visual Studio (abbreviated as VS) is a series of development kits of Microsoft Corporation in the United States. VS is a basically complete set of development tools, which includes most of the tools needed in the entire software life cycle, such as UML tools, code control tools, integrated development environment (IDE), and so on. The written object code is applicable to all platforms supported by Microsoft, including Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework, Microsoft Silverlight and Windows Phone.">Visual Studio</a>
</li>
	<li class="cat-item cat-item-147"><a href="https://yf9968.com/category/industry/web-crawler/" title="Web crawlers (also known as web spiders, web robots, in the FOAF community, and more often web chases) are programs or scripts that automatically crawl information on the World Wide Web in accordance with certain rules. Other less commonly used names are ants, automatic indexing, simulators, or worms.">Web Crawler</a>
</li>
	<li class="cat-item cat-item-155"><a href="https://yf9968.com/category/language/webservice/" title="Web service is a platform-independent, low-coupling, self-contained, programmable web-based application, which can be described, published, discovered, and coordinated using open XML (a subset of the standard Universal Markup Language) standard And configure these applications for the development of distributed interoperable applications. Web Service technology enables different applications running on different machines to exchange data or integrate with each other without using additional, specialized third-party software or hardware. Applications implemented according to the Web Service specification can exchange data with each other regardless of the language, platform, or internal protocol they use. Web Service is a self-describing and self-contained usable network module that can perform specific business functions. Web Services are also easy to deploy because they are based on some conventional industry standards and some existing technologies, such as a subset of XML and HTTP under the standard universal markup language. Web Service reduces the cost of application interfaces. Web Service provides a general mechanism for the integration of business processes between the entire enterprise and even multiple organizations.">WebService</a>
</li>
	<li class="cat-item cat-item-184"><a href="https://yf9968.com/category/os/windows/" title="Microsoft Windows is a set of operating systems developed by Microsoft in the United States. It came out in 1985. It was originally a Microsoft-DOS simulation environment. Due to the continuous updates and upgrades of Microsoft, the subsequent system versions are not only easy to use, but also gradually become households. People’s favorite operating system. Windows uses a graphical GUI, which is more user-friendly than the previous DOS that requires typing instructions. With the continuous upgrading of computer hardware and software, Microsoft’s Windows is also constantly upgrading, from the architecture of 16-bit, 32-bit to 64-bit, the system version from the original Windows 1.0 to the well-known Windows 95, Windows 98, Windows ME , Windows 2000, Windows 2003, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 and Windows Server server enterprise-level operating systems, constantly updated, Microsoft has been committed to the development and improvement of the Windows operating system.">Windows</a>
</li>
	<li class="cat-item cat-item-164"><a href="https://yf9968.com/category/mobile/wireless/" title="Wireless network (such as “wireless bridge, wireless AP”) uses wireless communication technology to replace traditional network cables or optical fibers to connect two or more different networks. It is suitable for occasions where wired construction is impossible or inconvenient, such as Compared with wired networks, ports, construction sites, freight yards, intersections, etc., have the advantages of flexible networking, convenient construction, and low cost. The LSW series bridges work in the 5.8GHz frequency band free of application for wireless licenses and support point-to-point, point-to-multipoint, and relay modes, which can meet the needs of most application scenarios.">Wireless</a>
</li>
	<li class="cat-item cat-item-193"><a href="https://yf9968.com/category/web/xml/" title="Extensible Markup Language, a subset of the standard universal markup language, is a markup language used to mark electronic files to make them structured. In the electronic computer, the mark refers to the information symbol that the computer can understand. Through this kind of mark, the computer can process various information such as articles. It can be used to mark data and define data types. It is a source language that allows users to define their own markup language. It is very suitable for World Wide Web transmission, providing a unified method to describe and exchange structured data independent of applications or vendors. It is a cross-platform and content-dependent technology in the Internet environment, and it is also an effective tool for processing distributed structured information today. As early as 1998, W3C released the XML1.0 specification, using it to simplify the transmission of document information on the Internet.">XML</a>
</li>
	<li class="cat-item cat-item-174"><a href="https://yf9968.com/category/opensource/zookeeper/" title="ZooKeeper is a distributed, open source distributed application coordination service, an open source implementation of Google’s Chubby, and an important component of Hadoop and Hbase. It is a software that provides consistent services for distributed applications. The functions provided include: configuration maintenance, domain name services, distributed synchronization, group services, etc.">ZooKeeper</a>
</li>
			</ul>

			</div><div id="archives-2" class="widget widget_archive"><span class="gamma widget-title">Archives</span>
			<ul>
					<li><a href='https://yf9968.com/date/2021/10/'>October 2021</a></li>
	<li><a href='https://yf9968.com/date/2021/09/'>September 2021</a></li>
	<li><a href='https://yf9968.com/date/2021/08/'>August 2021</a></li>
	<li><a href='https://yf9968.com/date/2021/05/'>May 2021</a></li>
	<li><a href='https://yf9968.com/date/2021/04/'>April 2021</a></li>
	<li><a href='https://yf9968.com/date/2020/09/'>September 2020</a></li>
	<li><a href='https://yf9968.com/date/2019/09/'>September 2019</a></li>
	<li><a href='https://yf9968.com/date/2019/08/'>August 2019</a></li>
	<li><a href='https://yf9968.com/date/2019/06/'>June 2019</a></li>
	<li><a href='https://yf9968.com/date/2019/05/'>May 2019</a></li>
	<li><a href='https://yf9968.com/date/2019/04/'>April 2019</a></li>
	<li><a href='https://yf9968.com/date/2019/03/'>March 2019</a></li>
			</ul>

			</div>	<div class="catcher"></div>
</aside><!-- #secondary -->
					
		</div><!-- . container -->
	</div><!-- #content -->

	
	<footer id="colophon" class="site-footer" role="contentinfo">

			<div class="copyrights"><div class="container">		<div class="site-info">

			© Simon Technology Blog 2024
			
				• <a href="https://basepresspro.com" rel="author" title="BasePress - The best free WordPress blog theme for WordPress" rel="author" target="_blank"> ThemeCountry</a> Powered by <a href="https://wordpress.org" target="_blank">WordPress</a>

			
		</div><!-- .copyright -->
		</div></div>
	</footer><!-- #colophon -->
	
				<span class="back-to-top"><i class="fa fa-angle-up" aria-hidden="true"></i></span>
		</div><!-- #page -->
	

		<!-- GA Google Analytics @ https://m0n.co/ga -->
		<script async src="https://www.googletagmanager.com/gtag/js?id=UA-136900486-1"></script>
		<script>
			window.dataLayer = window.dataLayer || [];
			function gtag(){dataLayer.push(arguments);}
			gtag('js', new Date());
			gtag('config', 'UA-136900486-1');
		</script>

	<script type="application/ld+json">{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","mainEntityOfPage":{"@type":"webpage","@id":"https:\/\/yf9968.com\/industry\/cgi\/1631\/"},"publisher":{"@type":"organization","name":"Simon Technology Blog","logo":{"@type":"ImageObject","url":"https:\/\/yf9968.com\/wp-content\/uploads\/2019\/03\/cropped-logo-1.png","width":"300","height":"90"}},"author":{"@type":"person","name":"Simo"},"datePublished":"2021-09-26T10:14:21+00:00","dateModified":"2021-09-26T10:14:21+00:00","name":"CGI and FASTCGI Get all environment variables (C language)","headline":"CGI and FASTCGI Get all environment variables (C language)","description":"Reference: http:\/\/blog.chinaunix.net\/uid-620765-id-2084386.htmlRemember the complete declaration of the C language main function? \u00a0\u00a0 int main(int argc, char **argv, char **envp); \u00a0\u00a0 \u00a0"}</script><script type='text/javascript' src='https://yf9968.com/wp-content/themes/basepress/js/navigation.js?ver=5.7.12' id='basepress-navigation-js'></script>
<script type='text/javascript' src='https://yf9968.com/wp-content/themes/basepress/js/skip-link-focus-fix.js?ver=5.7.12' id='basepress-skip-link-focus-fix-js'></script>
<script type='text/javascript' src='https://yf9968.com/wp-content/themes/basepress/js/script.js?ver=5.7.12' id='basepress-script-js'></script>
<script type='text/javascript' src='https://yf9968.com/wp-includes/js/wp-embed.min.js?ver=5.7.12' id='wp-embed-js'></script>

</body>
</html>